home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / prog_gen / inter49d.zip / PORTS.LST < prev    next >
File List  |  1996-02-11  |  244KB  |  6,413 lines

  1. PORT LIST            Release 49        Last Change: 2/11/96
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3. [This file originally by Wim Osterholt (2:512/56 or wim@djo.wtm.tudelft.nl).]
  4.  
  5.         XT, AT and PS/2     I/O port addresses
  6.  
  7. Do NOT consider this information to be complete and accurate.  If you want
  8. to do hardware programming ALWAYS check the appropriate data sheets (but
  9. even they are sometimes in error!).  Be aware that erroneous port programming
  10. can put your data or even your hardware at risk. 
  11.  
  12. There are a number of memory-mapped addresses in use for I/O; see MEMORY.LST
  13. for details on memory-mapped I/O.
  14.  
  15. ---------------------------------------------
  16. Note: the port description format is:
  17.  
  18. PPPPw RW  description
  19.  
  20. where:    PPPP    is the four-digit hex port number
  21.     w    is blank for byte-size port, 'w' for word, and 'd' for dword
  22.     R    is blank or dash if not readable, 'r' if sometimes readable,
  23.         'R' if "always" readable, '?' if readability unknown
  24.     W    is blank or dash if not writable, 'w' if sometimes writable,
  25.         'W' if "always" writable, '?' if writability unknown
  26. ----------P0000001F--------------------------
  27. PORT 0000-001F - DMA 1 - FIRST DIRECT MEMORY ACCESS CONTROLLER (8237)
  28.  
  29. 0000  RW  DMA channel 0     address byte  0, then byte 1
  30. 0001  RW  DMA channel 0 word count byte 0, then byte 1
  31. 0002  RW  DMA channel 1     address byte  0, then byte 1
  32. 0003  RW  DMA channel 1 word count byte 0, then byte 1
  33. 0004  RW  DMA channel 2     address byte  0, then byte 1
  34. 0005  RW  DMA channel 2 word count byte 0, then byte 1
  35. 0006  RW  DMA channel 3     address byte  0, then byte 1
  36. 0007  RW  DMA channel 3 word count byte 0, then byte 1
  37.  
  38. 0008  R      DMA channel 0-3 status register (see #P001)
  39. 0008   W  DMA channel 0-3 command register (see #P002)
  40. 0009   W  DMA channel 0-3 write request register (see #P003)
  41. 000A  RW  DMA channel 0-3 mask register (see #P004)
  42. 000B   W  DMA channel 0-3 mode register (see #P005)
  43.  
  44. 000C   W  DMA clear byte pointer flip-flop
  45. 000D  R      DMA read temporary register
  46. 000D   W  DMA master clear
  47. 000E   W  DMA clear mask register
  48. 000F   W  DMA write mask register
  49.  
  50. Bitfields for DMA channel 0-3 status register:
  51. Bit(s)    Description    (Table P001)
  52.  7    channel 3 request active
  53.  6    channel 2 request active
  54.  5    channel 1 request active
  55.  4    channel 0 request active
  56.  3    channel terminal count on channel 3
  57.  2    channel terminal count on channel 2
  58.  1    channel terminal count on channel 1
  59.  0    channel terminal count on channel 0
  60. SeeAlso: #P002,#P070
  61.  
  62. Bitfields for DMA channel 0-3 command register:
  63. Bit(s)    Description    (Table P002)
  64.  7    DACK sense active high
  65.  6    DREQ sense active high
  66.  5    =1 extended write selection
  67.     =0 late write selection
  68.  4    rotating priority instead of fixed priority
  69.  3    compressed timing
  70.  2    =1 enable controller
  71.     =0 enable memory-to-memory
  72.  1-0    channel number
  73. SeeAlso: #P001,#P004,#P005,#P071
  74.  
  75. Bitfields for DMA channel 0-3 request register:
  76. Bit(s)    Description    (Table P003)
  77.  7-3    reserved (0)
  78.  2    =0 clear request bit
  79.     =1 set request bit
  80.  1-0    channel number
  81.     00 channel 0 select
  82.     01 channel 1 select
  83.     10 channel 2 select
  84.     11 channel 3 select
  85. SeeAlso: #P004
  86.  
  87. Bitfields for DMA channel 0-3 mask register:
  88. Bit(s)    Description    (Table P004)
  89.  7-3    reserved (0)
  90.  2    =0 clear mask bit
  91.     =1 set mask bit
  92.  1-0    channel number
  93.     00 channel 0 select
  94.     01 channel 1 select
  95.     10 channel 2 select
  96.     11 channel 3 select
  97. SeeAlso: #P001,#P002,#P003,#P072
  98.  
  99. Bitfields for DMA channel 0-3 mode register:
  100. Bit(s)    Description    (Table P005)
  101.  7-6    transfer mode
  102.     00 demand mode
  103.     01 single mode
  104.     10 block mode
  105.     11 cascade mode
  106.  5    direction
  107.     =0 address increment select
  108.     =1 address decrement select
  109.  3-2    operation
  110.     00 verify operation
  111.     01 write to memory
  112.     10 read from memory
  113.     11 reserved
  114.  1-0    channel number
  115.     00 channel 0 select
  116.     01 channel 1 select
  117.     10 channel 2 select
  118.     11 channel 3 select
  119. SeeAlso: #P002,#P073
  120. ----------P0010001F--------------------------
  121. PORT 0010-001F - DMA CONTROLLER (8237) ON PS/2 MODEL 60 & 80
  122. ----------P0018------------------------------
  123. PORT 0018 - PS/2 - EXTENDED FUNCTION REGISTER
  124.  
  125. 0018  -W  PS/2 extended function register
  126. ----------P001A------------------------------
  127. PORT 001A - PS/2 - EXTENDED FUNCTION EXECUTE
  128. ----------P0020003F--------------------------
  129. PORT 0020-003F - PIC 1 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  130. SeeAlso: PORT 00A0h-00AFh"PIC 2",INT 08"IRQ0",INT 0F"IRQ7"
  131.  
  132. 0020  -W  PIC initialization command word ICW1 (see #P006)
  133. 0020  -W  PIC output control word OCW2 (see #P011)
  134. 0020  -W  PIC output control word OCW3 (see #P012)
  135. 0020  R-  PIC  interrupt request/in-service registers after OCW3
  136.         request register:
  137.          bit 7-0 = 0  no active request for the corresponding int. line
  138.              = 1  active request for corresponding interrupt line
  139.         in-service register:
  140.          bit 7-0 = 0  corresponding line not currently being serviced
  141.              = 1  corresponding int. line currently being serviced
  142.  
  143. 0021  -W  PIC ICW2,ICW3,ICW4 immed after ICW1 to 0020 (see #P007,#P008,#P009)
  144. 0021  RW  PIC master interrupt mask register OCW1 (see #P010)
  145.  
  146. Bitfields for PIC initialization command word ICW1:
  147. Bit(s)    Description    (Table P006)
  148.  7-5    0 (only used in 8080/8085 mode)
  149.  4    ICW1 is being issued
  150.  3    (LTIM)
  151.     =0  edge triggered mode
  152.     =1  level triggered mode
  153.  2    interrupt vector size
  154.     =0 successive interrupt vectors use 8 bytes (8080/8085)
  155.     =1 successive interrupt vectors use 4 bytes (80x86)
  156.  1    (SNGL)
  157.     =0  cascade mode
  158.     =1  single mode, no ICW3 needed
  159.  0    ICW4 needed
  160. SeeAlso: #P007,#P008,#P009
  161.  
  162. Bitfields for PIC initialization command word ICW2:
  163. Bit(s)    Description    (Table P007)
  164.  7-3    address lines A0-A3 of base vector address for PIC
  165.  2-0    reserved
  166. SeeAlso: #P006,#P008,#P009
  167.  
  168. Bitfields for PIC initialization command word ICW3:
  169. Bit(s)    Description    (Table P008)
  170.  7-0    =0 slave controller not attached to corresponding interrupt pin
  171.     =1 slave controller attached to corresponding interrupt pin
  172. SeeAlso: #P006,#P007,#P009
  173.  
  174. Bitfields for PIC initialization command word ICW4:
  175. Bit(s)    Description    (Table P009)
  176.  7-5    reserved (0)
  177.  4    running in special fully-nested mode
  178.  3-2    mode
  179.     0x nonbuffered mode
  180.     10 buffered mode/slave
  181.     11 buffered mode/master
  182.  1    Auto EOI
  183.  0    =0  8085 mode
  184.     =1  8086/8088 mode
  185. SeeAlso: #P006,#P007,#P008
  186.  
  187. Bitfields for PIC output control word OCW1:
  188. Bit(s)    Description    (Table P010)
  189.  7    disable IRQ7 (parallel printer interrupt)
  190.  6    disable IRQ6 (diskette interrupt)
  191.  5    disable IRQ5 (fixed disk interrupt)
  192.  4    disable IRQ4 (serial port 1 interrupt)
  193.  3    disable IRQ3 (serial port 2 interrupt)
  194.  2    disable IRQ2 (video interrupt)
  195.  1    disable IRQ1 (keyboard, mouse, RTC interrupt)
  196.  0    disable IRQ0 (timer interrupt)
  197. SeeAlso: #P011,#P012,#P069
  198.  
  199. Bitfields for PIC output control word OCW2:
  200. Bit(s)    Description    (Table P011)
  201.  7-5    operation
  202.     000 rotate in auto EOI mode (clear)
  203.     001 (WORD_A) nonspecific EOI
  204.     010 (WORD_H) no operation
  205.     011 (WORD_B) specific EOI
  206.     100 (WORD_F) rotate in auto EOI mode (set)
  207.     101 (WORD_C) rotate on nonspecific EOI command
  208.     110 (WORD_E) set priority command
  209.     111 (WORD_D) rotate on specific EOI command
  210.  4    reserved (0)
  211.  3    reserved (0)
  212.  2-0    interrupt request to which the command applies
  213.     (only used by WORD_B, WORD_D, and WORD_E)
  214. SeeAlso: #P010,#P012
  215.  
  216. Bitfields for PIC output control word OCW3:
  217. Bit(s)    Description    (Table P012)
  218.  7    reserved (0)
  219.  6-5    special mask
  220.     0x  no operation
  221.     10  reset special mask
  222.     11  set special mask
  223.  4    reserved (0)
  224.  3    reserved (1)
  225.  2    poll command
  226.  1-0    function
  227.     0x  no operation
  228.     10  read interrupt request register on next read from port 0020
  229.     11  read interrupt in-service register on next read from port 0020
  230. SeeAlso: #P010,#P011
  231. ----------P00220023--------------------------
  232. PORT 0022-0023 - CHIP SET DATA
  233.  
  234. 0022  -W  index for accesses to data port
  235. 0023  RW  chip set data
  236. ----------P00220023--------------------------
  237. PORT 0022-0023 - Cyrix Cx486SLC/DLC PROCESSOR - CACHE CONFIGURATION REGISTERS
  238.  
  239. 0022  -W  index for accesses to next port (see #P013)
  240. 0023  RW  cache configuration register array (indexed by port 0022h)
  241.  
  242. (Table P013)
  243. Values for Cyrix Cx486SLC/DLC Cache Configuration register number:
  244.  C0h    CR0 (see #P015)
  245.  C1h    CR1 (see #P016)
  246.  C4h    non-cacheable region 1, start address bits 31-24
  247.  C5h    non-cacheable region 1, start address bits 23-16
  248.  C6h    non-cacheable region 1, start addr 15-12, size (low nibble) (see #P014)
  249.  C7h    non-cacheable region 2, start address bits 31-24
  250.  C8h    non-cacheable region 2, start address bits 23-16
  251.  C9h    non-cacheable region 2, start addr 15-12, size (low nibble) (see #P014)
  252.  CAh    non-cacheable region 3, start address bits 31-24
  253.  CBh    non-cacheable region 3, start address bits 23-16
  254.  CCh    non-cacheable region 3, start addr 15-12, size (low nibble) (see #P014)
  255.  CDh    non-cacheable region 4, start address bits 31-24
  256.  CEh    non-cacheable region 4, start address bits 23-16
  257.  CFh    non-cacheable region 4, start addr 15-12, size (low nibble) (see #P014)
  258.  
  259. (Table P014)
  260. Values for Cyrix Cx486SLC/DLC non-cacheable region sizes:
  261.  00h    disabled
  262.  01h    4K
  263.  02h    8K
  264.  03h    16K
  265.  04h    32K
  266.  05h    64K
  267.  06h    128K
  268.  07h    256K
  269.  08h    512K
  270.  09h    1M
  271.  0Ah    2M
  272.  0Bh    4M
  273.  0Ch    8M
  274.  0Dh    16M
  275.  0Eh    32M
  276.  0Fh    4G
  277. SeeAlso: #P013
  278.  
  279. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 0:
  280. Bit(s)    Description    (Table P015)
  281.  0    "NC0" first 64K of each 1M noncacheable in real/V86
  282.  1    "NC1" 640K-1M noncacheable
  283.  2    "A20M" enables A20M# input pin
  284.  3    "KEN"  enables KEN# input pin
  285.  4    "FLUSH" enables KEN# input pin
  286.  5    "BARB" enables internal cache flushing on bus holds
  287.  6    "C0" cache direct-mapped instead of 2-way associative
  288.  7    "SUSPEND" enables SUSP# input and SUSPA# output pins
  289. SeeAlso: #P013,#P016
  290.  
  291. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 1:
  292. Bit(s)    Description    (Table P016)
  293.  0    "RPL" enables output pins RPLSET and RPLVAL#
  294. SeeAlso: #P013,#P015
  295. --------X-P00220023--------------------------
  296. PORT 0022-0023 - 82358DT 'Mongoose' EISA CHIPSET - 82359 DRAM CONTROLLER
  297. Notes:    this chip uses a chip ID of 01
  298.     the LIM register herein use a chip ID of 1A
  299.  
  300. 0022  -W  index for accesses to data port (see #P017)
  301. 0023  RW  chip set data
  302.  
  303. (Table P017)
  304. Values for 82359 DRAM controller register index:
  305.  00h    bank 0
  306.     bit 7    unknown
  307.     bit 6-4    000 DRAM in bank 0 (standard)
  308.         001 bank 1
  309.         010 bank 2
  310.         011 bank 3
  311.         100 banks 0,1
  312.         101 banks 2,3
  313.         110 banks 0,1,2,3
  314.         111 empty (standard for 1,2,3)
  315.     bit 3-2    unknown
  316.     bit 1-0    00 64K chips used
  317.         01 256K
  318.         10 1M
  319.         11 4M
  320.  01h    bank 1
  321.  02h    bank 2
  322.  03h    bank 3
  323.  21h    chip ID register
  324. ----------P00220023--------------------------
  325. PORT 0022-0023 - CHIPSET FROM ETEC CHEETAH ET6000 (SINGLE CHIP)
  326.  
  327. 0022  RW  chip set data
  328. 0023  ?W  index for accesses to data port (see #P018)
  329.  
  330. (Table P018)
  331. Values for Etec Cheetah ET6000 chip set register index:
  332.  10h    system configuration register (see #P019)
  333.  11h    cache configuration & non-cacheable block size register (see #P020)
  334.  12h    non-cacheable block address register
  335.     bit 7-1    non-cacheable address, A25-A19
  336.     bit 0    reserved
  337.  13h    DRAM bank & type configuration register (see #P021)
  338.  14h    DRAM configuration register (see #P022)
  339.  15h    shadow RAM configuration register (see #P023)
  340.  
  341. Bitfields for Etec Cheetah ET6000 system configuration register:
  342. Bit(s)    Description    (Table P019)
  343.  7-6    00 turbo/non-turbo
  344.     01 local device supported
  345.     10 suspend mode
  346.     11 illegal
  347.  5    reserved
  348.  4    refresh selection
  349.     0 = AT type refresh
  350.     1 = concurrent refresh
  351.  3    slow refresh  95mSec enabled
  352.  2    fast reset delay
  353.     0 = do not use delay
  354.     1 = wait for 2mSec delay
  355.  1    wait for HALT after KBDRST
  356.  0    RAM at A0000-BFFFF
  357.     0 = AT bus cycle
  358.     1 = local bus cycle
  359. SeeAlso: #P018
  360.  
  361. Bitfields for Etec Cheetah ET6000 cache configuration register:
  362. Bit(s)    Description    (Table P020)
  363.  7-5    000 disabled
  364.     001 512K
  365.     010 1M
  366.     011 2M
  367.     100 4M
  368.     101 8M
  369.     110 16M
  370.     111 32M
  371.  4    DRAM banks
  372.     0 = 2-bank DRAM
  373.     1 = 4-bank DRAM
  374.  3-0    reserved
  375. SeeAlso: #P018
  376.  
  377. Bitfields for Etec Cheetah ET6000 DRAM bank & type configuration register:
  378. Bit(s)    Description    (Table P021)
  379.  7-6    bank 3 DRAM type
  380.     00 none
  381.     01 256K
  382.     10 1M
  383.     11 4M
  384.  5-4    bank 2 DRAM type
  385.  3-2    bank 1 DRAM type
  386.  1-0    bank 0 DRAM type
  387. SeeAlso: #P018
  388.  
  389. Bitfields for Etec Cheetah ET6000 DRAM configuration register:
  390. Bit(s)    Description    (Table P022)
  391.  7    on-board memory range 15M to 16M disabled
  392.  6    on-board memory range 512K-640K disabled
  393.  5    ROM chip select at C0000-DFFFF enabled
  394.  4    RAS to CAS time
  395.     0 = 1 SYSCLCK,    not for R0WS
  396.     1 = 2 SYSCLCK
  397.  3    RAS precharge time
  398.     0 = 1.5 SYSCLCK
  399.     1 = 2.5 SYSCLCK
  400.  2-1    read cycle wait state
  401.     00 = 0 wait state
  402.     01 = 1 ws
  403.     10 = 2 ws
  404.     11 = 3 ws
  405.  0    write cycle wait state
  406.     0 = 0 ws
  407.     1 = 1 ws
  408. SeeAlso: #P018
  409.  
  410. Bitfields for Etec Cheetah ET6000 shadow RAM configuration register:
  411. Bit(s)    Description    (Table P023)
  412.  7    shadow at C0000-FFFFF
  413.     0 = non-cacheable
  414.     1 = cacheable and cache-write-proteced
  415.  6    access ROM/RAM at F0000-FFFFF
  416.     0 = read from ROM, write to RAM
  417.     1 = read from shadow, write is protected
  418.  5    access ROM/RAM at E0000-EFFFF
  419.     0 = access on-board ROM, AT bus cycle
  420.     1 = access shadow E0000-EFFFF enabled
  421.  4    RAM at E0000-EFFFF is read-only
  422.  3    access ROM/RAM at D0000-DFFFF
  423.     0 = access on-board ROM, AT bus cycle
  424.     1 = access shadow D0000-DFFFF enabled
  425.  2    RAM at D0000-DFFFF is read-only
  426.  1    access ROM/RAM at C0000-CFFFF
  427.     0 = access on-board ROM, AT bus cycle
  428.     1 = access shadow C0000-CFFFF enabled
  429.  0    RAM at C0000-CFFFF is read-only
  430. SeeAlso: #P018
  431. ----------P00220023--------------------------
  432. 0022-0023 ----    Hewlett-Packard Hornet chipset (HP 100LX/200LX)
  433.  
  434. 0022  RW  index for accesses to data port (see Table P189)
  435. 0023  RW  chip set data
  436.  
  437. (Table P024)
  438. Values for HP Hornet chipset register index:
  439.  1Eh    buzzer volume/clock oscillator speed
  440.     bit 7-6: buzzer volume
  441.     bit 5-4: system oscillator speed
  442.         00: 10.738636MHz
  443.         01: 15.836773MHz(HP 100/200LX has oscillator with this speed)
  444.         10: 21.477272MHz
  445.         11: 31.673550MHz
  446.  21h    display timing???
  447.  23h    LCD contrast (see INT15h AH=62h)
  448.     valid values: 00h-1fh (1fh is the darkest)
  449.  51h    power adapter status
  450.     bit 7-1: ???
  451.     bit 0: power adapter status(0=inactive/1=active)
  452.  52h    nicad charge status
  453.     bit 7-3: ???
  454.     bit 2: battery charging status(0=???/1=slow charge)
  455.     bit 1-0: ???
  456.  53h    nicad charge status
  457.     bit 7-1: ???
  458.     bit 0: battery charging status(0=???/1=fast charge)
  459.  80h    memory wait for internal ROM
  460.     valid values: 00h-07h
  461.  81h    memory wait for internal RAM
  462.     valid values: 00h-03h
  463.  82h    memory wait for external RAM
  464.     valid values: 00h-0fh
  465.  87h    battery status???
  466. ----------P00220024--------------------------
  467. PORT 0022-0024 - CHIPSET FROM PICO POWER, UMC or PCChips
  468.  
  469. 0022  ?W  index for accesses to data port
  470. 0024  RW  chip set data
  471. ----------P00220025--------------------------
  472. PORT 0022-0025 - INTEL 82360SL CHIPSET (FOR 386SL)
  473.  
  474. 0022  -W  CPU write mode register
  475. 0023  R-  configuration status register
  476.         bit 7: 82360 configuration is open
  477. 0024  -W  82360 configuration index
  478. 0025  RW  82360 configuration data
  479.  
  480. Bitfields for Intel 82360SL CPU write mode register:
  481. Bit(s)    Description    (Table P025)
  482.  0    unlock configuration space
  483.  1    enable selected unit
  484.  3-2    unit
  485.     00 memory configuration
  486.     01 cache
  487.     10 internal bus
  488.     11 external bus
  489. ----------P0022002B--------------------------
  490. PORT 0022-002B - INTEL 82355, PART OF CHIPSET FOR 386sx
  491. Note:    initialisation in POST will disable these addresses, only a hard
  492.       reset will enable them again.
  493.  
  494. 0022w RW  82335 MCR memory configuration register (if LOCK=0) (see #P026)
  495. 0024w RW  82335 RC1 roll compare register (if LOCK=0) (see #P027)
  496. 0026w RW  82335 RC2 roll compare register (if LOCK=0) (see #P027)
  497. 0028w RW  82335 CC0 address range compare register (if LOCK=0) (see #P028)
  498. 002Aw RW  82335 CC1 address range compare register (if LOCK=0) (see #P028)
  499.  
  500. Bitfields for 82335 MCR memory configuration register:
  501. Bit(s)    Description    (Table P026)
  502.  15-12    reserved
  503.  11    "VRO"    video read only (0=r/w, 1=r/o)
  504.  10    "EN#"
  505.     0=enable video RAM accesses (A0000h-8FFFFh)
  506.     1=disable accesses
  507.  9    "ENADP#"
  508.     0=enable adapter ROM accesses (C0000h-8FFFFh)
  509.     1=disable adapter ROM accesses, shadow enabled
  510.  8    "ROMSIZE" 0=256KB ROM, 1=512KB ROM
  511.  7-6    "INTERL" memory interleaving
  512.     00 = 1 memory bank installed (no interleave)
  513.     01 = 2 memory banks installed
  514.     10 = 3 memory banks installed
  515.     11 = 4 memory banks installed
  516.  5    reserved
  517.  4    "DSIZE"     0=1MBx1DRAMs, 1=256KBx1 or 256KBx4 DRAMs
  518.  3    "S640"     base memory size is 0=512KB, 1=640KB
  519.  2-1    reserved
  520.  0    "ROMEN#" ROM enable
  521.     0 enable BIOS ROM accesses (E0000h-FFFFFh)
  522.     1 disable BIOS ROM accesses, enable shadow
  523. Note:    One of the remaining reserved bits is the LOCK bit, which will be set
  524.       during power on, disabling access to the 82335s registers.
  525.  
  526. Bitfields for 82335 roll compare register:
  527. Bit(s)    Description    (Table P027)
  528.  15-9    selects address range to be remapped (C23-C17)
  529.  8    reserved
  530.  7-1    selects address bits to be included in re-mapping comparision (M23-M17)
  531.  0    "EN" enables roll address mapping
  532.  
  533. Bitfields for 82335 address range compare register:
  534. Bit(s)    Description    (Table P028)
  535.  15-11    specifies top of address range (C23-C19)
  536.  10-8    reserved
  537.  7-3    selects address bits to be included in address range comparision
  538.       (M23-M19)
  539.  2-1    reserved
  540.  0    "EN" enable address range comparision
  541. ----------P00240028--------------------------
  542. PORT 0024-0028 - HEADLAND HTK340 SHASTA 386/486 CHIPSET
  543.  
  544. 0024  Rw  data port
  545. 0028  ?W  index port to chipset registers (see #P029,#P030)
  546.  
  547. (Table P029)
  548. Values for Headland HT321 register index:
  549.  00h R    chip/revision,read-only
  550.       bit7-4: reserved (=0)
  551.       bit3-0: chip revision, 0=A, 1=B, 3=D
  552.  01h RW system clocking (default=00h)
  553.       bit7-4: reserved (=0)
  554.       bit3-0: ISA speed set
  555.  02h RW system parameters (default=00h) (see #P031)
  556.  04h RW co-processor (default=00h)
  557.       bit7-3: reserved (=0)
  558.       bit2=1: soft-NPU reset blocked (386 only)
  559.       bit1=1: weitek installed
  560.       bit0=1: 387 installed
  561.  06h RW DMA (default=00h) (see #P032)
  562.  07h RW EPROM (default=00h) (see #P033)
  563.  08h RW I/O and memory map holes (default=00h)
  564.       bit7-4: reserved (=0)
  565.       bit3    : 0/1 I/O map hole-A
  566.       bit2    : reserved (=0)
  567.       bit1    : 0/1 memory map hole-B
  568.       bit0    : reserved (=0)
  569.  10h RW hole-A low address (default=00h)
  570.  11h RW hole-A high address (default=00h)
  571.  19h RW mem hole-B start address, lower (default=00h)
  572.  1Ah RW mem hole-B start address, higher (default=00h)
  573.       bit7-6: reserved (=0)
  574.       bit5-0: address of mem hole-B start
  575.  1Ch RW mem hole-B end address, lower (default=00h)
  576.  1Dh RW mem hole-B end address, higher (default=00h)
  577.       bit7-6: reserved (=0)
  578.       bit5-0: address of mem hole-B end
  579. SeeAlso: #P030
  580.  
  581. (Table P030)
  582. Values for Headland HT342 register index:
  583.  20h R    identifier port read
  584.       bit7-4: DRAM controller identifier (0010b)
  585.       bit3-0: revision number (0=A)
  586.  21h R    feature port read    (default=00h)
  587.  24h RW DRAM options port #1 (default=00h)
  588.       bit7    : 0/1 staggered refresh
  589.       bit6    : refresh type
  590.       bit5    : 0/1 DRAM paging
  591.       bit4-2: CAS interleave
  592.       bit1-0: banks
  593.  25h    DRAM options port #2 (default=00h)
  594.       bit7-6: DRAM bank 1 type
  595.       bit5-4: DRAM bank 2 type
  596.       bit3-2: DRAM bank 1?? type
  597.       bit1-0: DRAM bank 0 type
  598.  26h RW DRAM options port #3 (default=FFh) (see #P034)
  599.  27h RW DRAM options port #4 (default=FFh) (see #P035)
  600.  28h RW data transfer control port (default=00h)
  601.     doubled indexed registers (28h-2Ah)
  602.       bit7    : initiate transfer
  603.       bit6    : read/write transfer
  604.       bit5-4: reserved
  605.       bit3-0: transfer/destination
  606.  29h RW RAM address register (default=00h)
  607.     doubled indexed registers (28h-2Ah)
  608.       bit7-5: reserved
  609.       bit4-0: RAM address registers contents
  610.  2Ah RW data transfer port   (default=00h)
  611.     doubled indexed registers (28h-2Ah)
  612.       bit7-6: reserved
  613.       bit5    : EMS translation
  614.       bit4    : reserved
  615.       bit3    : 0/1 cacheing
  616.       bit2    : 0/1 write
  617.       bit1    : 0/1 read
  618.       bit0    : 0/1 shadow
  619.  2Bh RW other options          (default=00h) (see #P036)
  620.  2Dh RW DRAM options port #5 (default=03h)
  621.       bit7-5: reserved
  622.       bit4    : 0/1 10µs RAS timeout
  623.       bit3-2: BUS speed
  624.       bit1-0: BUS recovery for DRAM cycles
  625.            00b=0: 4-1-1-1    10b=0.5
  626.            01b=1: 4-2-2-2    11b=1??
  627.  82h    read transfer
  628.  C2h    write transfer
  629. SeeAlso: #P029
  630.  
  631. Bitfields for Headland HT321 register 02h (system parameters):
  632. Bit(s)    Description    (Table P031)
  633.  7-6    IO recovery time (rev. D+)
  634.  5    parity override
  635.  4-3    cycle-width
  636.  2    0/1 port 92 functionality
  637.  1    IO decode
  638.  0    0/1 posted backplane MEMWN cycles
  639. SeeAlso: #P029
  640.  
  641. Bitfields for Headland HT321 register 06h (DMA control):
  642. Bit(s)    Description    (Table P032)
  643.  7    reserved (=0)
  644.  6    1/0 IOCHRDY during master cycle (rev. C+)
  645.  5    0/1 fast sample DMA
  646.  4-3    DMA waitstate 00b=3 .. 11b=0
  647.  2    0/1 DMA flow-through mode
  648.  1    0/1 extended DMA page register
  649.  0    DMA clock
  650. SeeAlso: #P029 
  651.  
  652. Bitfields for Headland HT321 register 07h (EPROM control):
  653. Bit(s)    Description    (Table P033)
  654.  7-6    reserved (=0)
  655.  5    0/1 EADS CACHE invalidation for EPROM writes (rev. D+)
  656.  4    0/1 ROMEN for EPROM writes (rev. C+)
  657.  3    0/1 middle BIOS region of 64KB space below 16MB
  658.  2    ROM-size (0=64KB, 1=128KB)
  659.  1    V-BIOS-add (0=separate, 1=same device)
  660.  0    ROM-access time (0=250ns, 1=125ns)
  661. SeeAlso: #P029
  662.  
  663. Bitfields for Headland HT342 register 26h (DRAM CAS control):
  664. Bit(s)    Description    (Table P034)
  665.  7    CAS hold on RAS (CAS before RAS refresh)
  666.  6    CAS precharge
  667.  5    CAS burst delay
  668.  4    CAS delay (writes)
  669.  3    CAS delay (reads)
  670.  2    CAS active time (writes)
  671.  1-0    CAS active time (reads)
  672. SeeAlso: #P030,#P035
  673.  
  674. Bitfields for Headland HT342 register 27h (DRAM RAS control):
  675. Bit(s)    Description    (Table P035)
  676.  7    RAS delay
  677.  6-5    RAS active (writes)
  678.  4-2    RAS active (reads)
  679.  1-0    RAS precharge
  680. SeeAlso: #P030,#P034
  681.  
  682. Bitfields for Headland HT342 register 2Bh (other options):
  683. Bit(s)    Description    (Table P036)
  684.  7    reserved
  685.  6    0/1 middle BIOS
  686.  5    0/1 data pipeline
  687.  4    0/1 data pipeline
  688.  3    IO-decode
  689.  2    reserved
  690.  1    16bit DMA bridge
  691.  0    0/1 write buffering
  692. SeeAlso: #P030
  693. ----------P00260027--------------------------
  694. PORT 0026-0027 - POWER MANAGEMENT
  695.  
  696. 0026  -W  index for data port
  697. 0027  RW  power management data
  698. ----------P002E002F--------------------------
  699. PORT 002E-002F - DELL ENHANCED PARALLEL PORT
  700. SeeAlso: PORT 015Ch,PORT 026Eh,PORT 0398h
  701.  
  702. 002E  -W  index for data port (see #P037)
  703. 002F  RW  EPP command data
  704.  
  705. (Table P037)
  706. Values for Dell Enhanced Parallel Port register index:
  707.  00h    bit 0: ???
  708.  02h    bit 7: port in bidirectional mode
  709.  04h    bits 0 and 2: ECP/EPP mode control
  710. ----------P0038003F--------------------------
  711. PORT 0038-003F - PC radio by CoZet Info Systems
  712. Notes:    The I/O address range is dipswitch selectable from:
  713.        038-03F and 0B0-0BF
  714.        078-07F and 0F0-0FF
  715.        138-13F and 1B0-1BF
  716.        178-17F and 1F0-1FF
  717.        238-23F and 2B0-2BF
  718.        278-27F and 2F0-2FF
  719.        338-33F and 3B0-3BF
  720.        378-37F and 3F0-3FF
  721.     All of these addresses show a readout of FF in initial state.
  722.     Once started, all of the addresses show     FB, whatever might happen.
  723. ----------P0040005F--------------------------
  724. PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254)
  725. Note:    XT & AT use ports 40h-43h; PS/2 uses ports 40h, 42h-44h, and 47h
  726.  
  727. 0040  RW  PIT  counter 0, counter divisor          (XT, AT, PS/2)
  728. 0041  RW  PIT  counter 1, RAM refresh counter    (XT, AT)
  729.             don't set below 3 on PCs (default 12h)
  730. 0042  RW  PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  731.     During normal operation mode (8253) 40h-42h set the counter values on
  732.     write and get the current counter value on read. In 16bit modes two
  733.     consequtive writes/reads must be issued, first with the low byte,
  734.     followed by the high byte. In 8254 read back modes, all selected
  735.     counters and status are latched and must be read out completely
  736.     before normal operation is valid again.     Each counter switches back
  737.     to normal operation after read out.  In 'get status and counter'
  738.     mode the first byte read is the status, followed by one or two
  739.     counter values. (see #P038)
  740. 0043  RW  PIT  mode port, control word register for counters 0-2 (see #P039)
  741.     Once a control word has been written (43h), it must be followed
  742.     immediately by performing the corresponding action to the counter
  743.     registers (40h-42h), else the system may hang!!
  744. 0044  RW  PIT  counter 3 (PS/2, EISA)
  745.         used as fail-safe timer. generates an NMI on time out.
  746.         for user generated NMI see at 0462.
  747. 0047  -W  PIT  control word register counter 3 (PS/2, EISA)
  748.     bit 7-6 = 00  counter 3 select
  749.         = 01  reserved
  750.         = 10  reserved
  751.         = 11  reserved
  752.     bit 5-4 = 00  counter latch command counter 3
  753.         = 01  read/write counter bits 0-7 only
  754.         = 1x  reserved
  755.     bit 3-0 = 00
  756. 0048  ??  EISA
  757. 0049  ??  8254 timer 2, not used (counter 1)
  758. 004A  ??  EISA programmable interval timer 2
  759. 004B  ??  EISA programmable interval timer 2
  760.  
  761. Bitfields for 8254 PIT counter status byte:
  762. Bit(s)    Description    (Table P038)
  763.  7    PIN status of OUTx Pins (1=high, 0=low)
  764.  6    counter start value loaded
  765.     =0: yes, so counter latch is valid to be read
  766.     =1: no, wait for counter latch to be set (may last a while)
  767. 5-0    counter mode, same as bit5-0 at 43h
  768. SeeAlso: #P039
  769.  
  770. Bitfields for 8253/8254 PIT mode control word:
  771. Bit(s)    Description    (Table P039)
  772.  7-6    counter select
  773.     00  counter 0 select
  774.     01  counter 1 select      (not PS/2)
  775.     10  counter 2 select
  776.     11  (8253) reserved
  777.         (8254) read back counter (see #P038)
  778. ---if counter select---
  779.  5-4    counter access
  780.     00  counter latch command
  781.         BUG:    Intel Neptune/Mercury Chipset 8237IB (SIO) needs a
  782.               short delay after issueing this command, else the
  783.               MSB may be outdated concerning the LSB, resulting
  784.               in large measuring errors.
  785.             Workaround: Check for this condition by comparing
  786.               results with last results and don't use errornous
  787.               results.
  788.     01  read/write counter bits 0-7 only
  789.     10  read/write counter bits 8-15 only
  790.     11  read/write counter bits 0-7 first, then 8-15
  791.  3-1    counter mode
  792.     000 mode 0 select - zero detection interrupt
  793.     001 mode 1 select - programmable one shot
  794.     x10 mode 2 select - rate generator
  795.     x11 mode 3 select - square wave generator
  796.         divisor factor 3 not allowed!
  797.     100 mode 4 select - software triggered strobe
  798.     101 mode 5 select - hardware triggered strobe
  799.  0    counting style
  800.     0  binary counter 16 bits
  801.     1  BCD counter (4 decades)
  802. ---if read back---
  803.  5-4    what to read
  804.     00 reserved
  805.     01 counter status
  806.     10 counter value
  807.     11 counter status and value
  808.  3    select counter 2
  809.  2    select counter 1
  810.  1    select counter 0
  811.  0    reserved (0)
  812. Note:    after issuing a read back 'get status' command, any new read back
  813.       command is ignored until the status is read from all selected
  814.       counters.
  815. ----------P0060006F--------------------------
  816. PORT 0060-006F - KEYBOARD CONTROLLER 804x (8041, 8042) (or PPI (8255) on PC,XT)
  817. Note:    XT uses ports 60h-63h, AT uses ports 60h-64h
  818.  
  819. 0060  RW  KB controller data port or keyboard input buffer (ISA, EISA)
  820.         should only be read from after status port bit0 = 1
  821.         should only be written to if status port bit1 = 0
  822. 0060  R-  KeyBoard or KB controller data output buffer (via PPI on XT)
  823.         PC: input from port A of 8255, if bit7 in 61h set (see #P055)
  824.         get scancodes, special codes (in PC: with bit7 in 61h cleared)
  825.           (see #P049)
  826.  
  827. 0061  R-  KB controller port B control register (ISA, EISA)
  828.         system control port for compatibility with 8255 (see #P052)
  829. 0061  -W  KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  830.         system control port for compatibility with 8255 (see #P051)
  831. 0061  -W  PPI Programmable Peripheral Interface 8255 (XT only)
  832.         system control port (see #P053)
  833. 0062  RW  PPI (XT only) data port C (see #P054)
  834. 0063  RW  PPI (XT only) command mode register (see #P056)
  835.  
  836. 0064  R-  keyboard controller read status (see #P057,#P058,#P059)
  837. 0064  -W  keyboard controller input buffer (ISA, EISA) (see #P060)
  838.  
  839. 0064  -W  (Amstrad/Schneider PC1512) set 'DIP switch S1' setting
  840.       stored in CMOS RAM that PPI should report for compatibility
  841. 0065  -W  (Amstrad/Schneider PC1512) set 'DIP switch S2' RAM size setting
  842.       stored in CMOS RAM, that PPI port C (PORT 0064h) should report for
  843.       compatibility
  844.  
  845. 0065  R-  communications port (Olivetti M24)
  846.  
  847. 0068  -W  (HP-Vectra) control buffer (HP commands) (see #P061)
  848. 0069  R-  (HP-Vectra) SVC (keyboard request SerViCe port)
  849. 006A  -W  (HP-Vectra) Acknowledge (clear processing, done)
  850. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  851.  
  852. Bitfields for AT keyboard controller input port:
  853. Bit(s)    Description    (Table P040)
  854.  7    keyboard enabled
  855.  6    =0  CGA, else MDA
  856.  5    =0  manufacturing jumper installed
  857.  4    =0  system RAM 512K, else 640K
  858.  3-0    reserved
  859. SeeAlso: #P041,#P043
  860.  
  861. Bitfields for AT keyboard controller input port (Compaq):
  862. Bit(s)    Description    (Table P041)
  863.  7    security lock is unlocked
  864.  6    =0  Compaq dual-scan display, 1=non-Compaq display
  865.  5    system board dip switch 5 is OFF
  866.  4    =0  auto speed selected, 1=high speed selected
  867.  3    =0  slow (4MHz), 1 = fast (8MHz)
  868.  2    no math coprocessor installed
  869.  1-0    reserved
  870. SeeAlso: #P042
  871.  
  872. Bitfields for AT keyboard controller output port:
  873. Bit(s)    Description    (Table P042)
  874.  7    keyboard data output
  875.  6    keyboard clock output
  876.  5    input buffer NOT full
  877.  4    output buffer NOT empty
  878.  3    reserved (see note)
  879.  2    reserved (see note)
  880.  1    gate A20
  881.  0    system reset
  882. Note:    bits 2 and 3 are the turbo speed switch or password lock on
  883.       Award/AMI/Phoenix BIOSes.  These bits make use of nonstandard
  884.       keyboard controller BIOS functionality to manipulate
  885.         pin 23 (8041 port 22) as turbo switch for AWARD
  886.         pin 35 (8041 port 15) as turbo switch/pw lock for Phoenix
  887. SeeAlso: #P040,#P043
  888.  
  889. Bitfields for HP Vectra keyboard controller output port:
  890. Bit(s)    Description    (Table P043)
  891.  7-5    reserved
  892.  4    output buffer full (OBF) interrupt
  893.  3    HP SVC interrupt
  894.  2    HP-HIL controller AutoPoll
  895.  1    A20 gate
  896.  0    system reset
  897. SeeAlso: #P042,#P044
  898.  
  899. Bitfields for HP Vectra command byte:
  900. Bit(s)    Description    (Table P044)
  901.  7    reserved (0)
  902.  6    scancode conversion mode (1 = PC/XT, 0 = PC/AT)
  903.  5    unused
  904.  4    disable keyboard (unless bit 3 set)
  905.  3    override keyboard disable
  906.  2    System Flag (may be read from port 0060h)
  907.  1    reserved
  908.  0    OBF interrupt enable
  909. SeeAlso: #P043
  910.  
  911. (Table P045)
  912. Values for keyboard commands (data also goes to PORT 0060h):
  913. Value    Count    Description
  914.  EDh    double    set/reset mode indicators Caps Num Scrl
  915.         bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk
  916.         all other bits must be zero.
  917.  EEh    sngl    diagnostic echo. returns EEh.
  918.  EFh    sngl    NOP (No OPeration). reserved for future use
  919.  EF+26h    double    [Cherry MF2 G80-1501HAD] read 256 bytes of chipcard data
  920.         keyboard must be disabled before this and has to
  921.         be enabled after finished.
  922.  F0h    double    get/set scan code set
  923.         00h get current set
  924.         01h scancode set 1 (PCs and PS/2 mod 30, except Type 2 ctrlr)
  925.         02h scancode set 2 (ATs, PS/2, default)
  926.         03h scancode set 3
  927.  F2h    sngl    read keyboard ID (read two ID bytes)
  928.         AT keyboards returns FA (ACK)
  929.         MF2 returns AB 41 (translation) or
  930.                 AB 83 (pass through)
  931.  F3h    double    set typematic rate/delay
  932.         format of the second byte:
  933.         bit7=0 : reserved
  934.         bit6-5 : typemativ delay
  935.              00b=250ms     10b= 750ms
  936.              01b=500ms     11b=1000ms
  937.         bit4-0 : typematic rate (see #P050)
  938.  F4h    sngl    enable keyboard
  939.  F5h    sngl    disable keyboard. set default parameters (no keyboard scanning)
  940.  F6h    sngl    set default parameters
  941.  F7h    sngl    [MCA] set all keys to typematic (scancode set 3)
  942.  F8h    sngl    [MCA] set all keys to make/release
  943.  F9h    sngl    [MCA] set all keys to make only
  944.  FAh    sngl    [MCA] set all keys to typematic/make/release
  945.  FBh    sngl    [MCA] set al keys to typematic
  946.  FCh    double    [MCA] set specific key to make/release
  947.  FDh    double    [MCA] set specific key to make only
  948.  FEh    sngl    resend last scancode
  949.  FFh    sngl    perform internal power-on reset function
  950. Note:    each command is acknowledged by FAh (ACK), if not mentioned otherwise.
  951.       See PORT 0060h-R for details.
  952. SeeAlso: #P046
  953.  
  954. (Table P046)
  955. Values for Mouse functions (for PS/2-like pointing devices):
  956. Value    Count    Description
  957.  E6h    sngl    set mouse scaling to 1:1
  958.  E7h    sngl    set mouse scaling to 2:1
  959.  E8h    double    set mouse resolution
  960.         (00h=1/mm, 01h=2/mm, 02h=4/mm, 03h=8/mm)
  961.  E9h    sngl    get mouse information
  962.         read two status bytes:
  963.           byte 0: flags (see #P047)
  964.           byte 1: resolution
  965.  EAh    sngl    set mouse to stream mode (mouse sends data on any changes)
  966.  EBh    sngl    get mouse data (from mouse to controller) (see #P048)
  967.         on reading, each data packet consists of 8 bytes:
  968.  ECh    sngl    reset mouse wrap mode (to normal mode)
  969.  EEh    sngl    set wrap mode
  970.  F0h    sngl    set remote mode (instead of stream mode), mouse sends data
  971.           only on issueing command EBh.
  972.  F2h    sngl    read mouse ID (read one, two?? ID bytes)
  973.         00h=mouse
  974.  F3h    double    set mouse sample rate in reports per second
  975.         0Ah=10/s       50h= 80/s
  976.         14h=20/s       64h=100/s
  977.         28h=40/s       C8h=200/s
  978.         3Ch=60/s
  979.  F4h    sngl    enable mouse (in stream mode)
  980.  F5h    sngl    disable mouse (in steam mode), set default parameters
  981.  F6h    sngl    reset to defaults: 100/s, scaling 1:1, stream-mode, 4/mm,
  982.           disabled
  983.  FEh    sngl    resend last mouse data (8 bytes, see EBh)
  984.  FFh    sngl    reset mouse
  985. Notes:     must issue command D4h to port 64h first to access mouse functions
  986.      all commands except ECh and FFh are acknowledged by FAh (ACK) or
  987.        FEh (Resend); get mouse ID (F2h) returns mouse ID.
  988. SeeAlso: #P045
  989.  
  990. Bitfields for mouse status byte 0:
  991. Bit(s)    Description    (Table P047)
  992.  7    unused
  993.  6    remote rather than stream mode
  994.  5    mouse enabled
  995.  4    scaling set to 2:1
  996.  3    unused
  997.  2    left button pressed
  998.  1    unused
  999.  0    right button pressed
  1000. SeeAlso: #P046,#P048
  1001.  
  1002. Format of mouse data packet:
  1003. Offset    Size    Description    (Table P048)
  1004.  00h    BYTE    status
  1005.         bit7    : y-data overrun
  1006.         bit6    : x-data overrun
  1007.         bit5    : y-data negative
  1008.         bit4    : x-data negative
  1009.         bit3-2=0: reserved
  1010.         bit1    : right button pressed
  1011.         bit0    : left button pressed
  1012.  01h    BYTE    reserved
  1013.  02h    BYTE    x-data
  1014.  03h    BYTE    reserved
  1015.  04h    BYTE    y-data
  1016.  05h    BYTE    reserved
  1017.  06h    BYTE    z-data (0)
  1018.  07h    BYTE    reserved
  1019. SeeAlso: #P046,#P047
  1020.  
  1021. (Table P049)
  1022. Values for keyboard special codes:
  1023.  00h    (MF2 in codeset2&3 or AT keyboards) keydetection/overrun error
  1024.  00h    (mouse) ID
  1025.  AAh    BAT completion code (sent after errorfree Basic Assurance Test)
  1026.  ABh    first byte of general MF2 keyboard ID
  1027.  EEh    Echo command return
  1028.  FAh    Acknowledge (all general commands except Resend and Echo)
  1029.  FAh    (mouse) Acknowledge (all commands except commands ECh,F2h,FFh)
  1030.  FCh    (MF2) BAT Failure Code (error in second half of the power on self test)
  1031.  FDh    (AT-keyboard) BAT Failure Code (error in the second half of the
  1032.       power-on self test)
  1033.  FEh    Resend: CPU to controller should resend last keyboard-command
  1034.  FEh    (mouse) CPU to controller should resend last mouse-command
  1035.  FFh    (MF2 in codeset1) keydetection/overrun error
  1036. Note:    keyboard stops scanning and waits for next command after returning
  1037.       code FCh or FDh
  1038. SeeAlso: PORT 0060h-R
  1039.  
  1040. (Table P050)
  1041. Values for keyboard typematic rate:
  1042.  00000b=30.0   10000b=7.5
  1043.  00001b=26.7   10001b=6.7
  1044.  00010b=24.0   10010b=6.0
  1045.  00011b=21.8   10011b=5.5
  1046.  00100b=20.0   10100b=5.0
  1047.  00101b=18.5   10101b=4.6
  1048.  00110b=17.1   10110b=4.3
  1049.  00111b=16.0   10111b=4.0
  1050.  01000b=15.0   11000b=3.7
  1051.  01001b=13.3   11001b=3.3
  1052.  01010b=12.0   11010b=3.0
  1053.  01011b=10.9   11011b=2.7
  1054.  01100b=10.0   11100b=2.5
  1055.  01101b= 9.2   11101b=2.3
  1056.  01110b= 8.5   11110b=2.1
  1057.  01111b= 8.0   11111b=2.0
  1058. SeeAlso: #P045
  1059.  
  1060. Bitfields for KB controller port B (system control port) [output]:
  1061. Bit(s)    Description    (Table P051)
  1062.  7    pulse to 1 for IRQ1 reset (PC,XT)
  1063.  6-4    reserved
  1064.  3    I/O channel parity check disable
  1065.  2    RAM parity check disable
  1066.  1    speaker data enable
  1067.  0    timer 2 gate to speaker enable
  1068. SeeAlso: PORT 0061h-W,#P052
  1069.  
  1070. Bitfields for KB controller port B control register (system control port) [input]:
  1071. Bit(s)    Description    (Table P052)
  1072.  7    RAM parity error occurred
  1073.  6    I/O channel parity error occurred
  1074.  5    mirrors timer 2 output condition
  1075.  4    toggles with each refresh request
  1076.  3    NMI I/O channel check status
  1077.  2    NMI parity check status
  1078.  1    speaker data status
  1079.  0    timer 2 clock gate to speaker status
  1080. SeeAlso: PORT 0061h-R,#P051
  1081.  
  1082. Bitfields for Progr. Peripheral Interface (8255) system control port [output]:
  1083. Bit(s)    Description    (Table P053)
  1084.  7    clear keyboard (only pulse, normally kept at 0)
  1085.  6    =0  hold keyboard clock low
  1086.  5    NMI I/O parity check disable
  1087.  4    NMI RAM parity check disable
  1088.  3    =0 read low nybble of switches S2
  1089.     =1 read high nybble of switches S2
  1090.  2    reserved, often used as turbo switch
  1091.     original PC: cassette motor off
  1092.  1    speaker data enable
  1093.  0    timer 2 gate to speaker enable
  1094. Note:    bits 2 and 3 are sometimes used as turbo switch
  1095. SeeAlso: PORT 0061h-W,#P0051,#P054,#P055,#P056
  1096.  
  1097. Bitfields for PPI (XT only) data port C:
  1098. Bit(s)    Description    (Table P054)
  1099.  7    RAM parity error occurred
  1100.  6    I/O channel parity error occurred
  1101.  5    timer 2 channel out
  1102.  4    reserved 
  1103.     original PC: cassette data input
  1104. ---
  1105.  3    system board RAM size type 1
  1106.  2    system board RAM size type 2
  1107.  1    coprocessor installed
  1108.  0    loop in POST
  1109. ---
  1110.  3-0    DIL switch S2 high/low nybble (depending on PORT 0061h bit 3)
  1111. SeeAlso: PORT 0062h-RW,#P053,#P055,#P056
  1112.  
  1113. Bitfields for PPI (PC,XT only) equipment switches [input]:
  1114. Bit(s)    Description    (Table P055)
  1115.  7-6    number of disk drives
  1116.     00  1 diskette drive
  1117.     01  2 diskette drives
  1118.     10  3 diskette drives
  1119.     11  4 diskette drives
  1120.  5-4    initial video
  1121.     00  reserved (video adapter has on-board BIOS)
  1122.     01  40*25 color (mono mode)
  1123.     10  80*25 color (mono mode)
  1124.     11  MDA 80*25
  1125.  3-2    memory size (using 256K chips)
  1126.     00  256K
  1127.     01  512K
  1128.     10  576K
  1129.     11  640K
  1130.  3-2    memory size (using 64K chips)
  1131.     00  64K
  1132.     01  128K
  1133.     10  192K
  1134.     11  256K
  1135.  3-2    memory size (original PC)
  1136.     00  16K
  1137.     01  32K
  1138.     10  48K
  1139.     11  64K
  1140.  1-0    reserved
  1141.  1    NPU (math coprocessor) present
  1142.  0    boot from floppy
  1143. SeeAlso: #P054,#P056,PORT 0060h-R
  1144.  
  1145. Bitfields for PPI (8255) command mode register:
  1146. Bit(s)    Description    (Table P056)
  1147.  7    activation function (0 = bit set/reset, 1 = mode set function)
  1148.  6,5    port A mode: 00 = mode0, 01 = mode1, 1x = mode2
  1149.  4    port A direction: 0 = output, 1 = input
  1150.  3    port C bits 7-4 direction: 0 = output, 1 = input
  1151.  2    port B mode: 0 = mode0, 1 = mode1
  1152.  1    port B direction: 0 = output, 1 = input
  1153.  0    port C bits 3-0 direction: 0 = output, 1 = input
  1154. Note:    Attention: Never write anything other than 99h to this port
  1155.       (better: never write anything to this port, only during BIOS
  1156.       init), as other values may connect multiple output drivers
  1157.       and will cause hardware damage in PC/XTs!  By setting command
  1158.       word to 99h, PPI will be set in input/output modes as it is
  1159.       necessary to support the commonly known IO-ports 60, 61, 62
  1160.       as desired.
  1161. SeeAlso: #P053,#P054,#P055
  1162.  
  1163. Bitfields for keyboard controller read status (ISA, EISA):
  1164. Bit(s)    Description    (Table P057)
  1165.  7    parity error on transmission from keyboard
  1166.  6    receive timeout
  1167.  5    transmit timeout
  1168.  4    keyboard interface inhibited by keyboard lock
  1169.  3    =1 data written to input register is command (PORT 0064h)
  1170.     =0 data written to input register is data (PORT 0060h)
  1171.  2    system flag status: 0=power up or reset     1=selftest OK
  1172.  1    input buffer full (input 60/64 has data for 8042)
  1173.     no write access allowed until bit clears
  1174.  0    output buffer full (output 60 has data for system)
  1175.     bit is cleared after read access
  1176. SeeAlso: PORT 0064h-R,#P058,#P059,#P060
  1177.  
  1178. Bitfields for keyboard controller read status (MCA):
  1179. Bit(s)    Description    (Table P058)
  1180.  7    parity error on transmission from keyboard
  1181.  6    general timeout
  1182.  5    mouse output buffer full
  1183.  4    keyboard interface inhibited by keyboard lock
  1184.  3    =1 data written to input register is command (PORT 0064h)
  1185.     =0 data written to input register is data (PORT 0060h)
  1186.  2    system flag status: 0=power up or reset     1=selftest OK
  1187.  1    input buffer full (60/64 has data for 804x)
  1188.     no write access allowed until bit clears
  1189.  0    output buffer full (output 60 has data for system)
  1190.     bit is cleared after read access
  1191. SeeAlso: #P057,#P059,#P060
  1192.  
  1193. Bitfields for keyboard controller read status (Compaq):
  1194. Bit(s)    Description    (Table P059)
  1195.  7    parity error detected (11-bit format only). If an
  1196.       error is detected, a Resend command is sent to the
  1197.       keyboard once only, as an attempt to recover.
  1198.  6    receive timeout. transmission didn't finish in 2mS.
  1199.  5    transmission timeout error
  1200.     bit 5,6,7  cause
  1201.         1 0 0  No clock
  1202.         1 1 0  Clock OK, no response
  1203.         1 0 1  Clock OK, parity error
  1204.  4    =0 security lock engaged
  1205.  3    =1 data in OUTPUT register is command
  1206.     =0 data in OUTPUT register is data
  1207.  2    system flag status: 0=power up or reset     1=soft reset
  1208.  1    input buffer full (60/64 has data for 804x)
  1209.     no write access allowed until bit clears
  1210.  0    output buffer full (port 60 has data for system)
  1211.     bit is cleared after read access
  1212. SeeAlso: #P057,#P058,#P060
  1213.  
  1214. (Table P060)
  1215. Values for keyboard controller commands (data goes to port 0060)::
  1216. Value        Description
  1217.  20h    read    read byte zero of internal RAM, this is the last KB command
  1218.           sent to the 8041/8042
  1219.     Compaq    put current command byte on port 0060 (see #P062,#P063)
  1220.  21-3F    read    reads the byte specified in the lower 5 bits of the command
  1221.           in the 804x's internal RAM
  1222.  60-7F    double    writes the data byte to the address specified in the 5 lower
  1223.           bits of the command
  1224.  60h    Compaq    Load new command (60 to [64], command to [60]) (see #P063)
  1225.         (also general AT-class machines)
  1226.  A0h    AMI    get ASCIZ copyright message on port 0060
  1227.  A1h    AMI    get controller version byte on port 0060
  1228.  A1h    Compaq    unknown speedfunction ??
  1229.  A2h    Compaq    unknown speedfunction ??
  1230.  A2h    AMI    set keyboard controller pins 22 and 23 low
  1231.  A3h    Compaq    Enable system speed control
  1232.  A3h    AMI    set keyboard controller pins 22 and 23 high
  1233.  A4h    MCA    check if password installed
  1234.  A4h    Compaq    Toggle speed
  1235.  A4h    AMI    set internal system speed flag to low
  1236.  A5h    MCA    load password
  1237.  A5h    AMI    set internal system speed flag to high
  1238.  A5h    Compaq    Special read. the 8042 places the real values of port 2
  1239.           except for bits 4 and 5 wich are given a new definition in
  1240.           the output buffer. No output buffer full is generated.
  1241.             if bit 5 = 0, a 9-bit keyboard is in use
  1242.             if bit 5 = 1, an 11-bit keyboard is in use
  1243.             if bit 4 = 0, output-buff-full interrupt disabled
  1244.             if bit 4 = 1, output-buffer-full interrupt enabled
  1245.  A6h    MCA    check password
  1246.  A6h    AMI    get internal system speed flag on port 0060
  1247.  A6h    Compaq    unknown speedfunction ??
  1248.  A7h    MCA    disable mouse port
  1249.  A7h    AMI    set internal flag indicating bad write cache
  1250.  A8h    MCA    enable mouse port
  1251.  A8h    AMI    set internal flag indicating good write cache
  1252.  A9h    MCA    test mouse port
  1253.  A9h    AMI    get internal flag indicating cache OK to 0060
  1254.  AAh    sngl    initiate self-test. will return 55h to data port if self-test
  1255.           successful, FCh if failed
  1256.  AAh    Compaq    initializes ports 1 and 2, disables the keyboard and clears
  1257.           the buffer pointers. It then places 55h in the output buffer.
  1258.  ABh    sngl    initiate interface test. result values:
  1259.         00h no error
  1260.         01h keyboard clock line stuck low
  1261.         02h keyboard clock line stuck high
  1262.         03h keyboard data line is stuck low
  1263.         04h keyboard data line stuck high
  1264.         05h (Compaq only) diagnostic feature
  1265.  ACh    read    diagnostic dump. the contents of the 804x RAM, output port,
  1266.           input port, status word are sent.
  1267.  ADh    sngl    disable keyboard (sets bit 4 of commmand byte)
  1268.  ADh    Vectra    HP Vectra diagnostic dump
  1269.  AEh    sngl    enable keyboard     (resets bit 4 of commmand byte)
  1270.  AFh    AWARD    Enhanced Command: read keyboard version
  1271.  B1h    AMI    set keyboard controller P11 line low
  1272.  B2h    AMI    set keyboard controller P12 line low
  1273.  B3h    AMI    set keyboard controller P13 line low
  1274.  B4h    AMI    set keyboard controller P22 line low
  1275.  B5h    AMI    set keyboard controller P23 line low
  1276.  B8h    AMI    set keyboard controller P10 line high
  1277.  B9h    AMI    set keyboard controller P11 line high
  1278.  BAh    AMI    set keyboard controller P12 line high
  1279.  BBh    AMI    set keyboard controller P13 line high
  1280.  BCh    AMI    set keyboard controller P22 line high
  1281.  BDh    AMI    set keyboard controller P23 line high
  1282.  C0h    read    read input port and place on PORT 0060h
  1283.         bit 7    keyboard NOT locked
  1284.         bit 6    =0 first video is CGA
  1285.             =1 first video is MDA
  1286.         bit 5    =0 factory testmode
  1287.             =1 normal
  1288.         bit 4    =0 256KB RAM, 1=512KB
  1289.         bit 5,3-0 are used in Intel chipset 386sx machines with
  1290.             AMI/Phoenix BIOSes for BIOS specific hardware settings
  1291.  C0h    Compaq    places status of input port in output buffer.  Use this
  1292.           command only when the output buffer is empty
  1293.  C1h    MCA    Enhanced Command: poll input port Low nibble
  1294.  C2h    MCA    Enhanced Command: poll input port High nibble
  1295.  C8h    AMI    unblock keyboard controller lines P22 and P23
  1296.  C9h    AMI    block keyboard controller lines P22 and P23
  1297.  CAh    AMI    read keyboard mode, return in 0060 bit 0
  1298.           (bit clear if ISA mode, set if PS/2 mode)
  1299.  CBh    AMI    set keyboard mode (write back mode byte returned by CAh,
  1300.           modifying only bit 0)
  1301.  D0h    read    read output port and place on PORT 0060h (see #P064)
  1302.  D0h    Compaq    places byte in output port in output buffer. Use this command
  1303.           only when the output buffer is empty
  1304.  D1h    double    write output port.  The next byte written to port 0060h will
  1305.           be written to the 804x output port; the original IBM AT and
  1306.           many compatibles use bit 1 of the output port to control
  1307.           the A20 gate.
  1308.         Important: bit 0 (system reset) should always be set here, as
  1309.               the system may hang constantly, use pulse output port
  1310.               (FEh) instead.
  1311.  D1h    Compaq    the system speed bits are not set by this command use
  1312.           commands A1-A6 (!) for speed functions.
  1313.  D2h    MCA    Enhanced Command: write keyboard output buffer
  1314.  D3h    MCA    Enhanced Command: write pointing device out.buf.
  1315.  D4h    MCA    write to mouse/pointing device instead of to keyboard; this
  1316.           controller command must precede every PORT 0060h command
  1317.           directed to the mouse, otherwise it will be sent to the
  1318.           keyboard
  1319.  D4h    AWARD    Enhanced Command: write to auxiliary device
  1320.  DDh    sngl    disable address line A20 (HP Vectra only???)
  1321.         default in Real Mode
  1322.  DFh    sngl    enable address line A20 (HP Vectra only???)
  1323.  E0h    read    read test inputs.
  1324.         bit0 = kbd clock, bit1 = kbd data
  1325.  Exxx    AWARD    Enhanced Command: active output port
  1326.  EDh    double    this is a two part command to control the state of the
  1327.           NumLock, CpasLock and ScrollLock LEDs
  1328.         The second byte contains the state to set LEDs.
  1329.             bit 7-3    reserved. should be set to 0.
  1330.             bit 2 = 0    Caps Lock LED off
  1331.             bit 1 = 0    Num Lock LED off
  1332.             bit 0 = 0    Scroll Lock LED off
  1333.  F0-FF    sngl    pulse output port low for 6 microseconds.
  1334.         bits 0-3 contain the mask for the bits to be pulsed.  A bit is
  1335.           pulsed if its mask bit is zero
  1336.         bit0=system reset. Don't set to zero. Pulse only!
  1337. Note:     keyboard controllers are widely different from each other.  You
  1338.        cannot generally exchange them between different machines.
  1339.      (Award) Derived from Award's Enhanced KB controller advertising sheet.
  1340.      (Compaq) Derived from the Compaq Deskpro 386 Tech. Ref. Guide.
  1341.  
  1342. (Table P061)
  1343. Values for HP Vectra control buffer command code:
  1344.  00h-54h insert standard key make code into 8041 scancode buf
  1345.  55h-77h insert HP key make code into 8041 scancode buffer
  1346.  7Ah    pass through next data byte
  1347.  7Bh    set RAM Switch to 0
  1348.  7Ch    set RAM Switch to 1 (default)
  1349.  7Dh    set CRT Switch to 0
  1350.  7Eh    set CRT Switch to 1 (default)
  1351.  7Fh    reserved
  1352.  80h-D4h insert standard key break code into scancode buffer
  1353.  D5h-F7h insert HP key break code into scancode buffer
  1354.  F8h    enable AutoPoll
  1355.  F9h    disable AutoPoll
  1356.  FAh-FEh reserved
  1357.  FFh    keyboard overrun
  1358. SeeAlso: PORT 0068h-W
  1359.  
  1360. Bitfields for Compaq keyboard command byte:
  1361. Bit(s)    Description    (Table P062)
  1362.  7    reserved
  1363.  6    =1 convert KB codes to 8086 scan codes
  1364.  5    =0 use 11-bit codes, 1=use 8086 codes
  1365.  4    =0 enable keyboard, 1=disable keyboard
  1366.  3    ignore security lock state
  1367.  2    this bit goes into bit2 status reg.
  1368.  1    reserved (0)
  1369.  0    generate interrupt when output buffer full
  1370. SeeAlso: #P063
  1371.  
  1372. Bitfields for keyboard command byte (alternate description):
  1373. Bit(s)    Description    (Table P063)
  1374.  7    reserved (0)
  1375.  6    IBM PC compatibility mode
  1376.  5    IBM PC mode
  1377.     no parity, no stop bits, no translation
  1378.     (PS/2) force mouse clock low
  1379.  4    disable keyboard (clock)
  1380.  3    inhibit override
  1381.     (PS/2) reserved
  1382.  2    system flag
  1383.  1    reserved (0)
  1384.     (PS/2) enable mouse output buffer full interrupt
  1385.  0    enable output buffer full interrupt
  1386. SeeAlso: #P062,#P064
  1387.  
  1388. Bitfields for keyboard controller output port:
  1389. Bit(s)    Description    (Table P064)
  1390.  7    keyboard data (output)
  1391.  6    keyboard clock (output)
  1392.  5    input buffer empty
  1393.  4    output buffer empty
  1394.  3    undefined
  1395.  2    undefined
  1396.     used by Intel 386sx Chipset with AMI/Phoenix BIOSes for BIOS-specific
  1397.       configuration of turbo switch
  1398.  1    gate address A20
  1399.  0    system reset
  1400. Note:    bit 0 (system reset) should always be set when writing the output
  1401.       port, as the system may hang constantly; use pulse output port
  1402.       (command FEh) instead.
  1403. SeeAlso: #P063
  1404. ----------P0065------------------------------
  1405. PORT 0065 - AT&T 6300+ - HIGH/LOW CHIP SELECT
  1406. ----------P0065------------------------------
  1407. PORT 0065 - ???
  1408.  
  1409. 0065  RW  ???
  1410.         bit 2: A20 gate control (set = A20 enabled, clear = disabled)
  1411. ----------P00660067--------------------------
  1412. PORT 0066-0067 - AT&T 6300+ - SYSTEM CONFIGURATION SWITCHES
  1413. ----------P0066------------------------------
  1414. PORT 0066 - IBM 4717 Magnetic Stripe Reader - ???
  1415. SeeAlso: PORT 0069h"Magnetic Stripe"
  1416. ----------P0068------------------------------
  1417. PORT 0068 - C&T CHIPSETS - TURBO MODE CONTROL
  1418. ----------P0069------------------------------
  1419. PORT 0069 - IBM 4717 Magnetic Stripe Reader - ???
  1420. SeeAlso: PORT 0066h"Magnetic Stripe"
  1421. ----------P006B006F--------------------------
  1422. PORT 006B-006F - SSGA CONTROL REGISTERS
  1423.  
  1424. 006B  ??  RAM enable/remap
  1425. 006C  ??  undocumented
  1426. 006D  ??  undocumented
  1427. 006E  ??  undocumented
  1428. 006F  ??  undocumented
  1429. ----------P0070007F--------------------------
  1430. PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK)
  1431. Note:    the real-time clock may be either a discrete MC146814, MC146818, or
  1432.       an emulation thereof built into the motherboard chipset
  1433.  
  1434. 0070   W  CMOS RAM index register port (ISA, EISA)
  1435.          bit 7    = 1  NMI disabled
  1436.             = 0  NMI enabled
  1437.          bit 6-0     CMOS RAM index (64 bytes, sometimes 128 bytes)
  1438.  
  1439.         any write to 0070 should be followed by an action to 0071
  1440.         or the RTC wil be left in an unknown state.
  1441.  
  1442. 0071  RW  CMOS RAM data port (ISA, EISA) (see #P065)
  1443.  
  1444. (Table P065)
  1445. Values for Real-Time Clock register number (see also CMOS.LST):
  1446.  00h-0Dh clock registers
  1447.  0Eh    diagnostics status byte
  1448.  0Fh    shutdown status byte
  1449.  10h    diskette drive type for A: and B:
  1450.  11h    reserved / IBM fixed disk / setup options
  1451.  12h    fixed disk drive type for drive 0 and drive 1
  1452.  13h    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  1453.  14h    equipment byte
  1454.  15h    LSB of system base memory in Kb
  1455.  16h    MSB of system base memory in Kb
  1456.  17h    LSB of total extended memory in Kb
  1457.  18h    MSB of total extended memory in Kb
  1458.  19h    drive C extension byte
  1459.  1Ah    drive D extension byte
  1460.  1Bh-2Dh reserved
  1461.  20h-27h commonly used for first user-configurable drive type
  1462.  2Eh    CMOS MSB checksum over 10-2D
  1463.  2Fh    CMOS LSB checksum over 10-2D
  1464.  30h    LSB of extended memory found above 1Mb at POST
  1465.  31h    MSB of extended memory found above 1Mb at POST
  1466.  32h    date century in BCD
  1467.  33h    information flags
  1468.  34h-3Fh    reserved    
  1469.  35h-3Ch commonly used for second user-configurable drive type
  1470.  3Dh-3Eh word to 82335 MCR memory config register at [22] (Phoenix)
  1471.  42h-4Ch AMI 1990 Hyundai super-NB368S notebook
  1472.     ???
  1473.  54h-57h AMI 1990 Hyundai super-NB368S notebook
  1474.     ???
  1475.  5Ch-5Dh AMI 1990 Hyundai super-NB368S notebook
  1476.     ???
  1477.  60h-61h AMI 1990 Hyundai super-NB368S notebook
  1478.     ???
  1479. ----------P0073------------------------------
  1480. PORT 0073 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  1481. SeeAlso: PORT 0075h
  1482.  
  1483. 0073  RW  ???
  1484.     bit 7: ???
  1485.     bit 6: disable ROM shadowing
  1486.     bit 5: ??? (related to IDE controller)
  1487.     bit 4: ???
  1488.     bit 3: ???
  1489. ----------P00740076--------------------------
  1490. PORT 0074-0076 - SECONDARY CMOS (Compaq), NVRAM (IBM) ACCESS
  1491. Note:    NVRAM may be 2K, 8K, or 16K
  1492. SeeAlso: PORT 0070h-007Fh,CMOS.LST
  1493.  
  1494. 0074   W  secondary CMOS RAM (IBM NVRAM) index, low byte
  1495. 0075   W  secondary CMOS RAM (IBM NVRAM) index, high byte
  1496. 0076  RW  secondary CMOS RAM (IBM NVRAM) data byte
  1497. ----------P0075------------------------------
  1498. PORT 0075 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  1499. SeeAlso: PORT 0073h,PORT 0078h"82378IB"
  1500.  
  1501. 0075  R?  ???
  1502.       bits 3-2: external bus speed???
  1503.            00  50 MHz
  1504.            01  66 MHz
  1505.            10  60 MHz
  1506.            11  40 MHz
  1507. ----------P0078------------------------------
  1508. PORT 0078 - HP-Vectra - HARD RESET: NMI ENABLE/DISABLE
  1509.  
  1510. 0078  ?W  NMI enable/disable
  1511.         bit 7 = 0  disable & clear hard reset from HP-HIL controller
  1512.               = 1  enable hard reset from HP-HIL controller chip
  1513.         bit 6-0       reserved
  1514. ----------P0078------------------------------
  1515. PORT 0078 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - BIOS COUNT-DOWN TIMER
  1516. Notes:    the BIOS uses this port for certain fine timings; presumably it is
  1517.       independent of processor speed (it appears to decrement at about
  1518.       300 kHz on my Pentium/90)
  1519.     the address at which this port appears may be set via the 82378's
  1520.       PCI configuration space word at offset 0080h (see #3176), or the
  1521.       timer may be disabled entirely
  1522. SeeAlso: PORT 0075h
  1523.  
  1524. 0078w    W  set count-down timer
  1525. 0078w  R   get current count (timer stops when it reaches 0000h)
  1526. ----------P0078007F--------------------------
  1527. PORT 0078-007F - PC radio by CoZet Info Systems
  1528. Range:    The I/O address range is dipswitch selectable from:
  1529.        038-03F and 0B0-0BF
  1530.        078-07F and 0F0-0FF
  1531.        138-13F and 1B0-1BF
  1532.        178-17F and 1F0-1FF
  1533.        238-23F and 2B0-2BF
  1534.        278-27F and 2F0-2FF
  1535.        338-33F and 3B0-3BF
  1536.        378-37F and 3F0-3FF
  1537. Note:    All of these addresses show a readout of FFh in initial state.
  1538.     Once started, all of the addresses show FBh, whatever might happen.
  1539. ----------P007C007D--------------------------
  1540. PORT 007C-007D - HP-Vectra - PIC 3 - PROGRAMMABLE INTERRUPT CONTROLLER (8259)
  1541. Notes:    cascaded to first controller.
  1542.     used for keyboard and input device interface.
  1543. SeeAlso: PORT 0020h-0021h,INT 68"Vectra",INT 6E"Vectra"
  1544.  
  1545. 007C  RW  HP-Vectra  PIC 3  see at 0020     PIC 1
  1546. 007D  RW  HP-Vectra  PIC 3  see at 0021     PIC 1
  1547. ----------P0080------------------------------
  1548. PORT 0080 - MANUFACTURING DIAGNOSTICS PORT
  1549. Note:    sometimes used for a POST hex display
  1550.  
  1551. 0080   W  Manufacturing Diagnostics port
  1552. 0080  R      ???
  1553.  
  1554. (Table P066)
  1555. Values for AMI BIOS diagnostics codes:
  1556.  00h    system boot completed, control passed to INT 19 bootstrap loader
  1557.  01h    register test
  1558.  02h    video initialization; NMIs disabled
  1559.  03h    power-on delay complete
  1560.  04h    pre-keyboard-test initializations complete
  1561.  05h    soft-reset/power-on setting determined
  1562.  06h    ROM enabled
  1563.  07h    ROM BIOS checksum test passed
  1564.  08h    keyboard BAT command issued
  1565.  09h    keyboard controller BAT result verified
  1566.  0Ah    keyboard controller command code issued
  1567.  0Bh    keyboard controller command byte written
  1568.  0Ch    keyboard controller pins 23/24 blocked and unblocked
  1569.  0Dh    keyboard controller NOP processing in progress
  1570.  0Eh    CMOS RAM shutdown register read/write test passed
  1571.  0Fh    CMOS RAM checksum calculation complete
  1572.  10h    CMOS RAM initialization complete
  1573.  11h    CMOS RAM status register initialized
  1574.  12h    DMA controllers 1/2 and interrupt controllers 1/2 disabled
  1575.  13h    video display disabled, port B initialized
  1576.  14h    chipset initialization, auto memory detection
  1577.  15h    8254 channel 2 test half complete
  1578.  16h    8254 channel 2 test completed
  1579.  17h    8254 channel 1 test completed
  1580.  18h    8254 channel 0 test completed
  1581.  19h    memory refresh started
  1582.  1Ah    memory refresh line is toggling
  1583.  1Bh    memory refresh test completed
  1584.  20h    base 64K memory test started
  1585.  21h    address line test passed
  1586.  22h    parity toggle complete
  1587.  23h    base 64K sequential read/write test passed
  1588.  24h    pre-interrupt-vector-initialization configuration complete
  1589.  25h    interrupt vectors initialized
  1590.  26h    8042 input port read
  1591.  27h    global data initialization complete
  1592.  28h    post-interrupt-vector-initialization initialization complete
  1593.  29h    monochrome mode set
  1594.  2Ah    color mode set
  1595.  2Bh    parity toggle on option video ROM test complete
  1596.  2Ch    initialization before video ROM control complete
  1597.  2Dh    video ROM check complete
  1598.  2Eh    !!!
  1599.  A9h    returned from E0000h adapter ROM
  1600.  AAh    final initializations after adapter ROM initializations complete
  1601. ----------P0080008F--------------------------
  1602. PORT 0080-008F - DMA PAGE REGISTERS (74612)
  1603.  
  1604. 0080  RW  extra page register (temporary storage)
  1605. 0081  RW  DMA channel 2 address byte 2
  1606. 0082  RW  DMA channel 3 address byte 2
  1607. 0083  RW  DMA channel 1 address byte 2
  1608. 0084  RW  extra page register
  1609. 0085  RW  extra page register
  1610. 0086  RW  extra page register
  1611. 0087  RW  DMA channel 0 address byte 2
  1612. 0088  RW  extra page register
  1613. 0089  RW  DMA channel 6 address byte 2
  1614. 0089  RW  DMA channel 7 address byte 2
  1615. 0089  RW  DMA channel 5 address byte 2
  1616. 008C  RW  extra page register
  1617. 008D  RW  extra page register
  1618. 008E  RW  extra page register
  1619. 008F  RW  DMA refresh page register
  1620. ----------P0080009F--------------------------
  1621. PORT 0080-009F - Intel386sx CHIPSET 82231
  1622. Note:    includes the DMA controller functionality on PORT 0080h to PORT 008Fh
  1623. ----------P0084------------------------------
  1624. PORT 0084 - Compaq POST Diagnostic
  1625. --------X-P0084------------------------------
  1626. PORT 0084 - EISA - SYNCHRONIZE BUS CYCLE
  1627. ----------P00850086--------------------------
  1628. PORT 0085-0086 - Intel "Triton" chipset - ???
  1629. SeeAlso: PORT 00EBh"Triton"
  1630.  
  1631. 0085  ?W  ???
  1632. 0086  ?W  ???
  1633. ----------P0090009F--------------------------
  1634. PORT 0090-009F - PS/2 - POS (PROGRAMMABLE OPTION SELECT)
  1635.  
  1636. 0090  ??  Central arbitration control port
  1637. 0091  R      Card selection feedback
  1638. 0092  RW  PS/2 system control port A  (port B is at 0061) (see #P067)
  1639. 0094   W  system board enable/setup register (see #P068)
  1640. 0095  --  reserved
  1641. 0096   W  adapter enable / setup register
  1642.          bit 3 = 1  setup adapters
  1643.                = 0  enable registers
  1644. 0097  --  reserved
  1645.  
  1646. Bitfields for PS/2 system control port A:
  1647. Bit(s)    Description    (Table P067)
  1648.  7-6    any bit set to 1 turns activity light on
  1649.  5    reserved
  1650.  4    watchdog timout occurred 
  1651.  3    =0 RTC/CMOS security lock (on password area) unlocked
  1652.     =1 CMOS locked (done by POST)
  1653.  2    reserved
  1654.  1    A20 is active
  1655.  0    =0 system reset or write
  1656.     =1 pulse alternate reset pin (alternate CPU reset)
  1657. SeeAlso: #P068
  1658.  
  1659. Bitfields for PS/2 system board enable/setup register:
  1660. Bit(s)    Description    (Table P068)
  1661.  7    =1  enable functions
  1662.     =0  setup functions
  1663.  5    =1  enables VGA
  1664.     =0  setup VGA
  1665. SeeAlso: #P067
  1666. ----------P00A000AF--------------------------
  1667. PORT 00A0-00AF - PIC 2 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  1668. SeeAlso: PORT 0020h-003Fh"PIC 1",INT 70"IRQ8",INT 77"IRQ15"
  1669.  
  1670. 00A0  RW  NMI mask register (XT)
  1671.          bit 7 = 0 disabled
  1672.                = 1 enabled
  1673. 00A0  RW  PIC 2     same as 0020 for PIC 1
  1674. 00A1  RW  PIC 2     same as 0021 for PIC 1 except for OCW1 (see #P069)
  1675.  
  1676. Bitfields for PIC2 output control word OCW2:
  1677. Bit(s)    Description    (Table P069)
  1678.  7    disable IRQ15 (reserved)
  1679.  6    disable IRQ14 (fixed disk interrupt)
  1680.  5    disable IRQ13 (coprocessor exception interrupt)
  1681.  4    disable IRQ12 (mouse interrupt)
  1682.  3    disable IRQ11 (reserved)
  1683.  2    disable IRQ10 (reserved)
  1684.  1    disable IRQ9  (redirect cascade)
  1685.  0    disable IRQ8  (real-time clock interrupt)
  1686. SeeAlso: #P010
  1687. ----------P00B000BF--------------------------
  1688. PORT 00B0-00BF - PC radio by CoZet Info Systems
  1689. Range:    The I/O address range is dipswitch selectable from:
  1690.        038-03F and 0B0-0BF
  1691.        078-07F and 0F0-0FF
  1692.        138-13F and 1B0-1BF
  1693.        178-17F and 1F0-1FF
  1694.        238-23F and 2B0-2BF
  1695.        278-27F and 2F0-2FF
  1696.        338-33F and 3B0-3BF
  1697.        378-37F and 3F0-3FF
  1698. Notes:    All of these addresses show a readout of FFh in initial state.
  1699.     Once started, all of the addresses show    FBh, whatever might happen.
  1700. ----------P00B2------------------------------
  1701. PORT 00B2 - Intel 82420EX chipset - Advanced Power Management Control
  1702. Notes:    used to pass data between the operating system and the System
  1703.       Management Interrupt (SMI) handler
  1704.     writes to this port can cause an SMI; reads can cause STPCLK# to be
  1705.       asserted (putting the CPU in sleep mode)
  1706. SeeAlso: PORT 00B3h
  1707.  
  1708. 00B2  RW  control
  1709. ----------P00B3------------------------------
  1710. PORT 00B3 - Intel 82420EX chipset - Advanced Power Management Status
  1711. Note:    used to pass data between the operating system and the System
  1712.       Management Interrupt (SMI) handler
  1713. SeeAlso: PORT 00B2h
  1714.  
  1715. 00B3  RW  status
  1716. ----------P00C0------------------------------
  1717. PORT 00C0 - TI SN746496 programmable tone/noise generator (PCjr)
  1718. ----------P00C000DF--------------------------
  1719. PORT 00C0-00DF - DMA 2 - SECOND DIRECT MEMORY ACCESS CONTROLLER (8237)
  1720.  
  1721. 00C0  RW  DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  1722. 00C2  RW  DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1723. 00C4  RW  DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  1724. 00C6  RW  DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1725. 00C8  RW  DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  1726. 00CA  RW  DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1727. 00CC  RW  DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  1728. 00CE  RW  DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  1729.  
  1730. 00D0  R      DMA channel 4-7 status register (ISA, EISA) (see #P070)
  1731. 00D0   W  DMA channel 4-7 command register (ISA, EISA) (see #P071)
  1732. 00D2   W  DMA channel 4-7 write request register (ISA, EISA)
  1733. 00D4   W  DMA channel 4-7 write single mask register (ISA, EISA) (see #P072)
  1734. 00D6   W  DMA channel 4-7 mode register (ISA, EISA) (see #P073)
  1735. 00D8   W  DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  1736.  
  1737. 00DA  R      DMA channel 4-7 read temporary register (ISA, EISA)
  1738. 00DA   W  DMA channel 4-7 master clear (ISA, EISA)
  1739. 00DC   W  DMA channel 4-7 clear mask register (ISA, EISA)
  1740. 00DE   W  DMA channel 4-7 write mask register (ISA, EISA)
  1741.  
  1742. Bitfields for DMA channel 4-7 status register:
  1743. Bit(s)    Description    (Table P070)
  1744.  7 = 1    channel 7 request
  1745.  6 = 1    channel 6 request
  1746.  5 = 1    channel 5 request
  1747.  4 = 1    channel 4 request
  1748.  3 = 1    terminal count on channel 7
  1749.  2 = 1    terminal count on channel 6
  1750.  1 = 1    terminal count on channel 5
  1751.  0 = 1    terminal count on channel 4
  1752. SeeAlso: #P001,#P071
  1753.  
  1754. Bitfields for DMA channel 4-7 command register:
  1755. Bit(s)    Description    (Table P071)
  1756.  7    DACK sense active high
  1757.  6    DREQ sense active high
  1758.  5    =1  extended write selection
  1759.     =0  late write selection
  1760.  4    rotating priority instead of fixed priority
  1761.  3    compressed timing
  1762.  2    =1  enable controller
  1763.     =0  enable memory-to-memory transfer
  1764.  1-0    channel number (00 = 4 to 11 = 7)
  1765. SeeAlso: #P002,#P070,#P072
  1766.  
  1767. Bitfields for DMA channel 4-7 write single mask register:
  1768. Bit(s)    Description    (Table P072)
  1769.  7-3    reserved
  1770.  2    =0  clear mask bit
  1771.     =1  set mask bit
  1772.  1-0    channel select
  1773.     00 channel 4 select
  1774.     01 channel 5 select
  1775.     10 channel 6 select
  1776.     11 channel 7 select
  1777. SeeAlso: #P004,#P071
  1778.  
  1779. Bitfields for DMA channel 4-7 mode register:
  1780. Bit(s)    Description    (Table P073)
  1781.  7-6    transfer mode
  1782.     00  demand mode
  1783.     01  single mode
  1784.     10  block mode
  1785.     11  cascade mode
  1786.  5    direction
  1787.     0  address increment select
  1788.     1  address decrement select
  1789.  4    autoinitialisation enabled
  1790.  3-2    operation
  1791.     00  verify operation
  1792.     01  write to memory
  1793.     10  read from memory
  1794.     11  reserved
  1795.  1-0    channel number
  1796.     00  channel 4 select
  1797.     01  channel 5 select
  1798.     10  channel 6 select
  1799.     11  channel 7 select
  1800. SeeAlso: #P005,#P072
  1801. ----------P00E000E1--------------------------
  1802. PORT 00E0-00E1 - CHIPSET FROM ACT
  1803.  
  1804. 00E0  ?W  index for accesses to data port
  1805. 00E1  R?  chip set data
  1806. ----------P00E000E7--------------------------
  1807. PORT 00E0-00E7 - MICROCHANNEL
  1808.  
  1809. 00E0  RW  split address register, memory encoding registers PS/2m80 only
  1810. 00E1  RW  memory register
  1811. 00E3  RW  error trace
  1812. 00E4  RW  error trace
  1813. 00E5  RW  error trace
  1814. 00E7  RW  error trace
  1815. ----------P00E1------------------------------
  1816. PORT 00E1 - STB PowerMEG - ???
  1817. Desc:    the STB PowerMEG is a memory expansion card capable of providing EMS
  1818.  
  1819. 00E1  RW  ???
  1820.       bit 0: ???
  1821. ----------P00EB------------------------------
  1822. PORT 00EB - Intel "Triton" chipset - ???
  1823. SeeAlso: PORT 0085h"Triton"
  1824.  
  1825. 00EB  ?W  ???
  1826. ----------P00EC00ED--------------------------
  1827. PORT 00EC-00ED - Compaq LTE Elite
  1828. ----------P00ED------------------------------
  1829. PORT 00ED - ???
  1830. Note:    on a number of machines, the BIOS appears to write a copy of any
  1831.       data sent to numerous other ports to this port as well
  1832.  
  1833. 00EDw  ?W  ???
  1834. ----------P00EF------------------------------
  1835. PORT 00EF - Hyunday Super-NB386S (AMD386sx with Intel chipset)
  1836. Warning: any access to this port causes a cold reset on this machine!
  1837. ----------P00F000F5--------------------------
  1838. PORT 00F0-00F5 - PCjr Disk Controller
  1839.  
  1840. 00F0  ??  disk controller
  1841. 00F2  ??  disk controller control port
  1842. 00F4  ??  disk controller status register
  1843. 00F5  ??  disk controller data port
  1844. ----------P00F000FF--------------------------
  1845. PORT 00F0-00FF - coprocessor (8087..80387)
  1846.  
  1847. 00F0   W  math coprocessor clear busy latch
  1848. 00F1   W  math coprocessor reset
  1849. 00F8  RW  opcode transfer
  1850. 00FA  RW  opcode transfer
  1851. 00FC  RW  opcode transfer
  1852. ----------P00F9------------------------------
  1853. PORT 00F9 - Compaq LTE Elite
  1854. ----------P00FB------------------------------
  1855. PORT 00FB - Compaq LTE Elite
  1856. ----------P00F900FF--------------------------
  1857. PORT 00F9-00FF - PC radio by CoZet Info Systems
  1858. Range:    The I/O address range is dipswitch selectable from:
  1859.        038-03F and 0B0-0BF
  1860.        078-07F and 0F0-0FF
  1861.        138-13F and 1B0-1BF
  1862.        178-17F and 1F0-1FF
  1863.        238-23F and 2B0-2BF
  1864.        278-27F and 2F0-2FF
  1865.        338-33F and 3B0-3BF
  1866.        378-37F and 3F0-3FF
  1867. Notes:    All of these addresses show a readout of FFh in initial state.
  1868.     Once started, all of the addresses show    FBh, whatever might happen.
  1869. ----------P0100------------------------------
  1870. PORT 0100 - 3COM 3C509 Ethernet card - ID port
  1871. Note: this port is present only on the 3C509, not on any other 3COM card
  1872. SeeAlso: PORT 0110h,PORT 0120h
  1873. ----------P01000107--------------------------
  1874. PORT 0100-0107 - PS/2 POS (Programmable Option Select)
  1875. Note:    the default value for PORT 0102h is stored in CMOS 31h
  1876.  
  1877. 0100  R      POS register 0    Low adapter ID byte
  1878. 0101  R      POS register 1    High adapter ID byte
  1879. 0102  RW  POS register 2    option select data byte 1 (see #P074)
  1880. 0103  RW  POS register 3    option select data byte 2
  1881. 0104  RW  POS register 4    option select data byte 3
  1882. 0105  RW  POS register 5    option select data byte 4
  1883.          bit 7    channel active (-CHCK)
  1884.          bit 6    channel status
  1885. 0106  RW  POS register 6    Low subaddress extension
  1886. 0107  RW  POS register 7    High subaddress extension
  1887.  
  1888. Bitfields for PS/2 POS register 2, option select data byte 1:
  1889. Bit(s)    Description    (Table P074)
  1890.  7      0  = unidirectional LPT port
  1891.       1  = bidirectional LPT port
  1892.  6-5    PS/2 Model 50 and higher
  1893.      00b = default LPT port at 3BCh
  1894.      01b = ""           378h
  1895.      10b = ""           278h
  1896.      11b = reserved
  1897.  4    reserved
  1898.  0    card enable (CDEN)
  1899.  0    =1 VGA sleep bit, disconnects output drivers from VGA (usage for VGA
  1900.       without monitor)
  1901. ---ET4000---
  1902.  7-4    reserved???
  1903.  3    video RAM wait enable
  1904.  2    ET4000: ROM BIOS wait enable
  1905.  1    ET4000: I/O wait enable
  1906. Note:    access to this port is only possible when PORT 0094h bit 7 is low.
  1907. ----------P0100010F--------------------------
  1908. PORT 0100-010F - CompaQ Tape drive adapter. alternate address at 0300
  1909. ----------P0108010F--------------------------
  1910. PORT 0108-010F - IBM PS/2 - 8 digit LED info panel
  1911.  
  1912. 010F   W  leftmost character on display
  1913. 010E   W  second character
  1914.  ...
  1915. 0108   W  eighth character
  1916. ----------P0110------------------------------
  1917. PORT 0110 - 3COM 3C509 Ethernet card - ID port (alternate address)
  1918. Note:    this port is present only on the 3C509, not on any other 3COM card
  1919. SeeAlso: PORT 0100h"3COM",PORT 0120h"3COM"
  1920. ----------P0120------------------------------
  1921. PORT 0120 - 3COM 3C509 Ethernet card - ID port (alternate address)
  1922. Note:    this port is present only on the 3C509, not on any other 3COM card
  1923. SeeAlso: PORT 0100h"3COM",PORT 0110h"3COM"
  1924. ----------P0130013F--------------------------
  1925. PORT 0130-013F - CompaQ SCSI adapter. alternate address at 0330
  1926. ----------P01300133--------------------------
  1927. PORT 0130-0133 - Adaptec 154xB/154xC SCSI adapter.
  1928. Range:    alternate address at 0134, 0230, 0234, 0330 and 0334
  1929. ----------P01340137--------------------------
  1930. PORT 0134-0137 - Adaptec 154xB/154xC SCSI adapter.
  1931. Range:    alternate address at 0130, 0230, 0234, 0330 and 0334
  1932. ----------P0138013F--------------------------
  1933. PORT 0138-013F - PC radio by CoZet Info Systems
  1934. Range:    The I/O address range is dipswitch selectable from:
  1935.        038-03F and 0B0-0BF
  1936.        078-07F and 0F0-0FF
  1937.        138-13F and 1B0-1BF
  1938.        178-17F and 1F0-1FF
  1939.        238-23F and 2B0-2BF
  1940.        278-27F and 2F0-2FF
  1941.        338-33F and 3B0-3BF
  1942.        378-37F and 3F0-3FF
  1943. Notes:    All of these addresses show a readout of FFh in initial state.
  1944.     Once started, all of the addresses show    FBh, whatever might happen.
  1945. ----------P0140014F--------------------------
  1946. PORT 0140-014F - SCSI (alternate Small Computer System Interface) adapter
  1947. Note:    first adapter is at 0340-034F
  1948. ----------P01400157--------------------------
  1949. PORT 0140-0157 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  1950. ----------P015C015D--------------------------
  1951. PORT 015C-015D - Dell Enhanced Parallel Port
  1952. SeeAlso: PORT 002Eh,PORT 026Eh,PORT 0398h
  1953.  
  1954. 015C   W  index for data port
  1955. 015D  RW  EPP command data
  1956. ----------P015F------------------------------
  1957. PORT 015F - ARTEC Handyscanner A400Z.  alternate address at 35F.
  1958. ----------P01700177--------------------------
  1959. PORT 0170-0177 - HDC 2    (2nd Fixed Disk Controller) (ISA, EISA)
  1960. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  1961. SeeAlso: PORT 01F0h-01F7h
  1962. ----------P01780179--------------------------
  1963. PORT 0178-0179 - Power Management
  1964.  
  1965. 0178   W  index selection for data port
  1966. 0179  RW  power management data
  1967. ----------P0178017F--------------------------
  1968. PORT 0178-017F - PC radio by CoZet Info Systems
  1969. Range:    The I/O address range is dipswitch selectable from:
  1970.        038-03F and 0B0-0BF
  1971.        078-07F and 0F0-0FF
  1972.        138-13F and 1B0-1BF
  1973.        178-17F and 1F0-1FF
  1974.        238-23F and 2B0-2BF
  1975.        278-27F and 2F0-2FF
  1976.        338-33F and 3B0-3BF
  1977.        378-37F and 3F0-3FF
  1978. Notes:    All of these addresses show a readout of FFh in initial state.
  1979.     Once started, all of the addresses show    FBh, whatever might happen.
  1980. ----------P01CE01CF--------------------------
  1981. PORT 01CE-01CF - ATI Mach32 video chipset - ???
  1982.  
  1983. 01CE   W  index register
  1984. 01CF  RW  data register
  1985. ----------P01E801EF--------------------------
  1986. PORT 01E8-01EF - Headland HL21 & Acer M5105 chipsets - SYSTEM CONTROL
  1987.  
  1988. 01ED  RW  select internal register. Data to/from 01EF
  1989. 01EE  R      ???
  1990. 01EF  RW  register value
  1991.     05h  = 1000xxxx for low CPU clock speed (4MHz on Morse/Mitac)
  1992.          = 0xxxxxxx for high CPU clock speed (16MHz on Morse/Mitac)
  1993.     10h memory size
  1994.        bits 2-0 = size
  1995.            (undefined,512K,640K,1024K,2560K,2048K,4096K,undef.)
  1996.     14h ???
  1997.        bit 2: 384K RAM of first 1024K relocated to top of memory
  1998. ----------P01F001F7--------------------------
  1999. PORT 01F0-01F7 - HDC 1    (1st Fixed Disk Controller) (ISA, EISA)
  2000. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2001. SeeAlso: PORT 0170h-0177h
  2002.  
  2003. 01F0  RW  data register
  2004. 01F1  R      error register (see #P075)
  2005. 01F1   W  WPC/4     (Write Precompensation Cylinder divided by 4)
  2006. 01F2  RW  sector count
  2007. 01F3  RW  sector number (CHS mode)
  2008.       logical block address, bits 0-7 (LBA mode)
  2009. 01F4  RW  cylinder low (CHS mode)
  2010.       logical block address, bits 15-8 (LBA mode)
  2011. 01F5  RW  cylinder high (CHS mode)
  2012.       logical block address, bits 23-16 (LBA mode)
  2013. 01F6  RW  drive/head (see #P076)
  2014. 01F7  R      status register (see #P077)
  2015. 01F7   W  command register (see #P078)
  2016.  
  2017. Bitfields for Hard Disk Controller error register:
  2018. Bit(s)    Description    (Table P075)
  2019. ---diagnostic mode errors---
  2020.  7    which drive failed (0 = master, 1 = slave)
  2021.  6-3    reserved
  2022.  2-0    error code
  2023.     001    no error detected
  2024.     010    formatter device error
  2025.     011    sector buffer error
  2026.     100    ECC circuitry error
  2027.     101    controlling microprocessor error
  2028. ---operation mode---
  2029.  7    bad block detected
  2030.  6    uncorrectable ECC error
  2031.  5    reserved
  2032.  4    ID found
  2033.  3    reserved
  2034.  2    command aborted prematurely
  2035.  1    track 000 not found
  2036.  0    DAM not found (always 0 for CP-3022)
  2037. SeeAlso: #P076,#P077
  2038.  
  2039. Bitfields for hard disk controller drive/head specifier:
  2040. Bit(s)    Description    (Table P076)
  2041.  7    =1
  2042.  6    LBA mode enabled, rather than default CHS mode
  2043.  5    =1
  2044.  4    drive select (0 = drive 0, 1 = drive 1)
  2045.  3-0    head select bits (CHS mode)
  2046.     logical block address, bits 27-24 (LBA mode)
  2047. SeeAlso: #P075,#P077
  2048.  
  2049. Bitfields for hard disk controller status register:
  2050. Bit(s)    Description    (Table P077)
  2051.  7    controller is executing a command
  2052.  6    drive is ready
  2053.  5    write fault
  2054.  4    seek complete
  2055.  3    sector buffer requires servicing
  2056.  2    disk data read successfully corrected
  2057.  1    index - set to 1 each disk revolution
  2058.  0    previous command ended in an error
  2059. SeeAlso: #P075,#P078
  2060.  
  2061. (Table P078)
  2062. Values for hard disk controller command codes:
  2063. Command     Spec    Type    Proto    Description            class:
  2064.  00h        opt    nondata    NOP                    
  2065.  1xh        opt    nondata    recalibrate              1
  2066.  20h        req    PIOin    read sectors with retry          1
  2067.  21h        req    PIOin    read sectors without retry      1
  2068.  22h        req    PIOin    read long with retry          1
  2069.  23h        req    PIOin    read long without retry          1
  2070.  30h        req    PIOout    write sectors with retry      2
  2071.  31h        req    PIOout    write sectors without retry      2
  2072.  32h        req    PIOout    write long with retry          2
  2073.  33h        req    PIOout    write long without retry      2
  2074.  3Ch     IDE    opt    PIOout    write verify              3
  2075.  40h        req    nondata    read verify sectors with retry      1
  2076.  41h        req    nondata    read verify sectors without retry 1
  2077.  50h        req    vend    format track              2
  2078.  7xh        req    nondata    seek                  1
  2079.  8xh     IDE    vendor    vend    vendor unique 3
  2080.  90h        req    nondata    execute drive diagnostics      1
  2081.  91h        req    nondata    initialize drive parameters      1
  2082.  92h        opt    PIOout    download microcode            
  2083.  94h E0h IDE    opt    nondata    standby immediate          1
  2084.  95h E1h IDE    opt    nondata    idle immediate              1
  2085.  96h E2h IDE    opt    nondata    standby                  1
  2086.  97h E3h IDE    opt    nondata    idle                  1
  2087.  98h E5h IDE    opt    nondata    check power mode          1
  2088.  99h E6h IDE    opt    nondata    set sleep mode              1
  2089.  9Ah     IDE    vendor    vend    vendor unique 1
  2090.  C0h-C3h IDE    vendor    vend    vendor unique 2
  2091.  C4h     IDE    opt    PIOin    read multiple              1
  2092.  C5h     IDE    opt    PIOout    write multiple              3
  2093.  C6h     IDE    opt    nondata    set multiple mode          1
  2094.  C8h     IDE    opt    DMA    read DMA with retry          1
  2095.  C9h     IDE    opt    DMA    read DMA without retry          1
  2096.  CAh     IDE    opt    DMA    write DMA with retry          3
  2097.  CBh     IDE    opt    DMA    write DMA w/out retry          3
  2098.  DBh     ATA-2    opt    vend    acknowledge media chng        [Removable]
  2099.  DCh     ATA-2    opt    vend    Boot / Post-Boot        [Removable]
  2100.  DDh     ATA-2    opt    vend    Boot / Pre-Boot    (ATA-2)        [Removable]
  2101.  DEh     ATA-2    opt    vend    door lock            [Removable]
  2102.  DFh     ATA-2    opt    vend    door unlock            [Removable]
  2103.  E0h-E3h            (see 94h-96h)
  2104.  E4h     IDE    opt    PIOin    read buffer              1
  2105.  E5h-E6h            (see 98h-99h)
  2106.  E8h     IDE    opt    PIOout    write buffer              2
  2107.  E9h     IDE    opt    PIOout    write same              3
  2108.  EAh     ATA-3    opt        Secure Disable            [Security Mode]
  2109.  EAh     ATA-3    opt        Secure Lock            [Security Mode]
  2110.  EAh     ATA-3    opt        Secure State            [Security Mode]
  2111.  EAh     ATA-3    opt        Secure Enable WriteProt        [Security Mode]
  2112.  EBh     ATA-3    opt        Secure Enable            [Security Mode]
  2113.  EBh     ATA-3    opt        Secure Unlock            [Security Mode]
  2114.  ECh     IDE    req    PIOin    identify drive              1 (see #P079)
  2115.  EDh     ATA-2    opt    nondata    media eject            [Removable]
  2116.  EEh     ATA-3    opt        identify device DMA            (see #P079)
  2117.  EFh     IDE    opt    nondata    set features              1
  2118.  F0h-F4h IDE        vend    EATA standard    
  2119.  F5h-FFh IDE    vendor    vend    vendor unique 4
  2120. SeeAlso: #P075,#P077
  2121.  
  2122. Format of IDE Identify Drive information:
  2123. Offset    Size    Description    (Table P079)
  2124.  00h    WORD    general configuration
  2125.  02h    WORD    number of logical cylinders
  2126.  04h    WORD    reserved
  2127.  06h    WORD    number of logical heads
  2128.  08h    WORD    vendor-specific
  2129.  0Ah    WORD    vendor-specific
  2130.  0Ch    WORD    number of logical sectors
  2131.  0Eh    WORD    vendor-specific
  2132.  10h    WORD    vendor-specific
  2133.  12h    WORD    vendor-specific
  2134.  14h 10 WORDs    serial number
  2135.         no serial number if first word is 0000h
  2136.         else blank-padded ASCII serial number
  2137.  28h    WORD    vendor-specific
  2138.         [controller type]
  2139.  2Ah    WORD    vendor-specific
  2140.         [controller buffer size in 512-byte sectors]
  2141.  2Ch    WORD    number of vendor-specific (usually ECC) bytes on
  2142.           Read/Write Long
  2143.  2Eh  4    WORDs    firmware revision
  2144.         no revision number if first word is 0000h
  2145.         else blank-padded ASCII revision number
  2146.  36h 20    WORDs    model number
  2147.         no model number if first word is 0000h
  2148.         else blank-padded ASCII model string
  2149.  5Eh    WORD    read/write multiple support
  2150.         bits 7-0: maximum number of sectors per block supported
  2151.             00h if read/write multiple not supported
  2152.  60h    WORD    reserved (0)
  2153.         able to do doubleword transfers if nonzero ???
  2154.  62h    WORD    capabilities (see #P080)
  2155.  64h    WORD    security mode
  2156.         bit 15: security-mode feature set supported
  2157.         bits 14-8: maximum number of passwords supported
  2158.  66h    WORD    PIO data transfer cycle timing
  2159.  68h    WORD    single-word DMA data transfer cycle timing
  2160.  6Ah    WORD    field validity
  2161.         bit 0: offsets 6Ch-73h valid
  2162.         bit 1: offsets 80h-8Dh valid
  2163.  6Ch    WORD    logical cylinders in current translation mode
  2164.  6Eh    WORD    logical heads in current translation mode
  2165.  70h    WORD    logical sectors per track in current translation mode
  2166.  72h  2    WORDs    current capacity in sectors (excluding device-specific uses)
  2167.  76h    WORD    multiple-sector count for read/write multiple command
  2168.  78h  2    WORDs    total number of user-addressable sectors (LBA mode)
  2169.         00000000h if LBA mode not supported
  2170.  7Ch    WORD    single-word DMA transfer modes
  2171.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2172.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2173.  7Eh    WORD    multiword DMA transfer
  2174.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2175.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2176.  80h    WORD    supported flow control PIO transfer modes
  2177.  82h    WORD    minimum multiword DMA transfer cycle time
  2178.  84h    WORD    recommended multiword DMA cycle time
  2179.  86h    WORD    minimum non-flow-control PIO transfer cycle time
  2180.  88h    WORD    minimum PIO transfer cycle time with IORDY
  2181.  8Ah  2 WORDs    reserved for future PIO modes (0)
  2182.  8Eh 58 WORDs    reserved (0)
  2183. 100h 32 WORDs    vendor-specific
  2184. 140h 96 WORDs    reserved (0)
  2185.  
  2186. Bitfields for IDE capabilities:
  2187. Bit(s)    Description    (Table P080)
  2188.  13    Standby Timer values used according to ATA standard
  2189.  11    IORDY supported
  2190.  10    device can disable use of IORDY
  2191.  9    LBA mode supported
  2192.  8    DMA supported
  2193. SeeAlso: #P079
  2194. ----------P01F8------------------------------
  2195. PORT 01F8 - ???
  2196.  
  2197. 01F8  RW  ???
  2198.         bit 0: A20 gate control (set = A20 enabled, clear = disabled)
  2199. ----------P01F901FF--------------------------
  2200. PORT 01F9-01FF - PC radio by CoZet Info Systems
  2201. Range:    The I/O address range is dipswitch selectable from:
  2202.        038-03F and 0B0-0BF
  2203.        078-07F and 0F0-0FF
  2204.        138-13F and 1B0-1BF
  2205.        178-17F and 1F0-1FF
  2206.        238-23F and 2B0-2BF
  2207.        278-27F and 2F0-2FF
  2208.        338-33F and 3B0-3BF
  2209.        378-37F and 3F0-3FF
  2210. Notes:    All of these addresses show a readout of FFh in initial state.
  2211.     Once started, all of the addresses show    FBh, whatever might happen.
  2212. --------d-P0200------------------------------
  2213. PORT 0200 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  2214. SeeAlso: PORT 0300h"Digidesign"
  2215. ----------P0200020F--------------------------
  2216. PORT 0200-020F - Game port reserved I/O address space  
  2217. 0200-0207 - Game port, eight identical addresses on some boards
  2218.  
  2219. 0201  R      read joystick position and status (see #P081)
  2220. 0201   W  fire joystick's four one-shots
  2221. 0201  RW  gameport on mc-soundmachine, mc 03-04/1992: Adlib-compatible,
  2222.         Covox 'voice master' & 'speech thing' compatible soundcard.
  2223.         (enabled if bit1=1 in PORT 038Fh. Because it is disabled on
  2224.         power-on, it cannot be found by BIOS) (see PORT 0388h-038Fh)
  2225.  
  2226. Bitfields for joystick position and status:
  2227. Bit(s)    Description    (Table P081)
  2228.  7    status B joystick button 2 / D paddle button
  2229.  6    status B joystick button 1 / C paddle button
  2230.  5    status A joystick button 2 / B paddle button
  2231.  4    status A joystick button 1 / A paddle button
  2232.  3    B joystick Y coordinate       / D paddle coordinate
  2233.  2    B joystick X coordinate       / C paddle coordinate
  2234.  1    A joystick Y coordinate       / B paddle coordinate
  2235.  0    A joystick X coordinate       / A paddle coordinate
  2236. ----------P020002FF--------------------------
  2237. PORT 0200-02FF - Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
  2238. Range:    4 bit DIP switch installable in the range 20x-2Fx
  2239.  
  2240. 0200-0203    adresses of the 8255 on the uPW48
  2241. 0208-020B    adresses of ??? on the uPW48 (all showing zeros)
  2242. ----------P02080209--------------------------
  2243. PORT 0208-0209 - Intel 82C212B "Neat" chipset - EMS emulation control
  2244. Range:    may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, 02E8
  2245. ----------P020C020F--------------------------
  2246. PORT 020C-020F - AIMS LAB PC Radio
  2247. Range:    configurable to 020C or 030C
  2248. ----------P02100217--------------------------
  2249. PORT 0210-0217 - Expansion unit (XT)
  2250.  
  2251. 0210   W  latch expansion bus data
  2252. 0210  R      verify expansion bus data
  2253. 0211   W  clear wait, test latch
  2254. 0211  R      High byte data address
  2255. 0212  R      Low byte data address
  2256. 0213   W  0=enable,  1=disable expansion unit
  2257. 0214   W  latch data  (receiver card port)
  2258. 0214  R      read data   (receiver card port)
  2259. 0215  R      High byte of address, then Low byte    (receiver card port)
  2260. ----------P02100211--------------------------
  2261. PORT 0210-0211 - Game Blaster
  2262. Range:    PORT 02x0h-02x1h, x=1,2,...
  2263.  
  2264. 0210   W  register index
  2265. 0211  ?W  register data
  2266. ----------P02180219--------------------------
  2267. PORT 0218-0219 - Intel 82C212B "Neat" chipset - EMS emulation control
  2268. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2269. ----------P02200223--------------------------
  2270. PORT 0220-0223 ---- Sound Blaster / Adlib port (Stereo)
  2271. SeeAlso: PORT 0388h-0389h
  2272.  
  2273. 0220  R      Left speaker -- Status port
  2274. 0220   W  Left speaker -- Address port
  2275. 0221   W  Left speaker -- Data port
  2276. 0222  R      Right speaker -- Status port
  2277. 0222   W  Right speaker -- Address port
  2278. 0223   W  Right speaker -- Data port
  2279. ----------P02200227--------------------------
  2280. PORT 0220-0227 - Soundblaster PRO and SSB 16 ASP
  2281. ----------P0220022F--------------------------
  2282. PORT 0220-022F - Soundblaster PRO 2.0
  2283. ----------P0220022F--------------------------
  2284. PORT 0220-022F - Soundblaster PRO 4.0
  2285. Note:    the FM music is accessible on 0388/0389 for compatibility.
  2286.  
  2287. 0220  R      left FM status port
  2288. 0220   W  left FM music register address port (index)
  2289. 0221  RW  left FM music data port
  2290. 0222  R      right FM status port
  2291. 0222   W  right FM music register address port (index)
  2292. 0223  RW  right FM music data port
  2293. 0224   W  mixer register address port (index)
  2294. 0225  RW  mixer data port
  2295. 0226   W  DSP reset
  2296. 0228  R      FM music status port
  2297. 0228   W  FM music register address port (index)
  2298. 0229   W  FM music data port
  2299. 022A  R      DSP read data (voice I/O and Midi)
  2300. 022C   W  DSP write data / write command
  2301. 022C  R      DSP write buffer status (bit 7)
  2302. 022E  R      DSP data available status (bit 7)
  2303. ----------P022B------------------------------
  2304. PORT 022B - GI1904 Scanner Interface Adapter
  2305. Range:    PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  2306. Range:    PORT 03ABh, PORT 03EBh
  2307. ----------P022F------------------------------
  2308. PORT 022F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  2309. Note:    An Adlib-compatible Covox 'voice master' & 'speech thing' compatible
  2310.       soundcard
  2311. SeeAlso: PORT 0378h"Covox",PORT 0388h-038Fh"soundmachine"
  2312.  
  2313. 022F  RW  Covox compatible speech I/O  (via internal A/D converter,
  2314.         each read access starts a new conversion cycle)
  2315.         register enabled if bit7=1 in PORT 038Fh
  2316. ----------P02300233--------------------------
  2317. PORT 0230-0233 - Adaptec 154xB/154xC SCSI adapter.
  2318.         alternate address at 0130, 0134, 0230, 0330 and 0334
  2319. ----------P02340237--------------------------
  2320. PORT 0234-0237 - Adaptec 154xB/154xC SCSI adapter.
  2321.         alternate address at 0130, 0134, 0230, 0330 and 0334
  2322. ----------P0238023F--------------------------
  2323. PORT 0238-023F - COM port addresses on UniRAM card by German magazine c't
  2324.         selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  2325. ----------P0238023x--------------------------
  2326. PORT 0238-023x - Bus Mouse Port (secondary address)
  2327. Note:    secondary address for bus mice from MS and Logitech, and the ATI
  2328.       video adapter mouse
  2329. ----------P023C023x--------------------------
  2330. PORT 023C-023x - Bus Mouse Port (primary address)
  2331. Note:    primary address for bus mice from MS and Logitech, the ATI video
  2332.       adapter mouse, and the Commodore PC30III bus mouse
  2333. ----------P0240024F--------------------------
  2334. PORT 0240-024F - Gravis Ultra Sound by Advanced Gravis
  2335. Range:    The I/O address range is dipswitch selectable from:
  2336.        0200-020F and 0300-030F
  2337.        0210-021F and 0310-031F
  2338.        0220-022F and 0320-032F
  2339.        0230-023F and 0330-033F
  2340.        0240-024F and 0340-034F
  2341.        0250-025F and 0350-035F
  2342.        0260-026F and 0360-036F
  2343.        0270-027F and 0370-037F
  2344. SeeAlso: PORT 0340h-034Fh,PORT 0746h
  2345.  
  2346. 0240   W  Mix Control register (see #P082)
  2347. 0241  R      Read Data
  2348. 0241   W  Trigger Timer
  2349. 0246  R      IRQ Status Register (see #P083)
  2350. 0248  RW  Timer Control Reg
  2351.       Same as ADLIB Board (see PORT 0200h)
  2352. 0249   W  Timer Data (see #P084)
  2353. 024B   W  IRQ Control Register (0240 bit 6 = 1) (see #P085)
  2354. 024B   W  DMA Control Register (0240 bit 6 = 0) (see #P086)
  2355. 024F  RW  Register Controls (rev 3.4+)
  2356.  
  2357. Bitfields for Gravis Ultra Sound mix control register:
  2358. Bit(s)    Description    (Table P082)
  2359.  6       Control Register Select (see 024B)
  2360.  5       Enable MIDI Loopback
  2361.  4       Combine GF1 IRQ with MIDI IRQ
  2362.  3       Enable Latches
  2363.  2       Enable MIC IN
  2364.  1       Disable LINE OUT
  2365.  0       Disable LINE IN
  2366. SeeAlso: #P083
  2367.  
  2368. Bitfields for Gravis Ultra Sound IRQ status register:
  2369. Bit(s)    Description    (Table P083)
  2370.  7       DMA TC IRQ
  2371.  6       Volume Ramp IRQ
  2372.  5       WaveTable IRQ
  2373.  3       Timer 2 IRQ
  2374.  2       Timer 1 IRQ
  2375.  1       MIDI Receive IRQ
  2376.  0       MIDI Transmit IRQ
  2377. SeeAlso: #P082,#P085,#P086
  2378.  
  2379. Bitfields for Gravis Ultra Sound timer data:
  2380. Bit(s)    Description    (Table P084)
  2381.  7       Reset Timr IRQ
  2382.  6       Mask Timer 1
  2383.  5       Mask Timer 2
  2384.  1       Timer 2 Start
  2385.  0       Timer 1 Start
  2386. SeeAlso: #P083,#P085
  2387.  
  2388. Bitfields for Gravis Ultra Sound IRQ control register:
  2389. Bit(s)    Description    (Table P085)
  2390.  6    Combine Both IRQ
  2391.  5-3    MIDI IRQ Selector
  2392.     000  No IRQ
  2393.     001  IRQ 2
  2394.     010  IRQ 5
  2395.     011  IRQ 3
  2396.     100  IRQ 7
  2397.     101  IRQ 11
  2398.     110  IRQ 12
  2399.     111  IRQ 15
  2400.  2-0    GF1 IRQ Selector
  2401.     000  No IRQ
  2402.     001  IRQ 2
  2403.     010  IRQ 5
  2404.     011  IRQ 3
  2405.     100  IRQ 7
  2406.     101  IRQ 11
  2407.     110  IRQ 12
  2408.     111  IRQ 15
  2409. SeeAlso: #P083,#P086
  2410.  
  2411. Bitfields for Gravis Ultra Sound DMA Control Register:
  2412. Bit(s)    Description    (Table P086)
  2413.  6    Combine Both DMA
  2414.  5-3    DMA Select Register 2
  2415.     000  No DMA
  2416.     001  DMA 1
  2417.     010  DMA 3
  2418.     011  DMA 5
  2419.     100  DMA 6
  2420.     101  DMA 7 
  2421.  2-0    DMA Select Register 1
  2422.     000  No DMA
  2423.     001  DMA 1
  2424.     010  DMA 3
  2425.     011  DMA 5
  2426.     100  DMA 6
  2427.     101  DMA 7 
  2428. SeeAlso: #P083,#P085,#P090
  2429. ----------P02400257--------------------------
  2430. PORT 0240-0257 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  2431.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  2432. ----------P02580259--------------------------
  2433. PORT 0258-0259 - Intel 82C212B "Neat" chipset - EMS emulation control
  2434. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2435. ----------P02580259--------------------------
  2436. PORT 0258-0259 ---- AT RAMBANK Memory Expansion Board - EXT. MEMORY AND EMS-SUPPORT
  2437. Range:    base address may be set to 0218h, 0228h, 0238h, 0258h, 0268h, 0298h,
  2438.       or 02A8h
  2439. ----------P0258025F--------------------------
  2440. PORT 0258-025F - Intel Above Board
  2441. ----------P02600268--------------------------
  2442. PORT 0260-0268    -  LPT port address on the UniRAM card by German magazine c't
  2443.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  2444. ----------P02680269--------------------------
  2445. PORT 0268-0269 - Intel 82C212B "Neat" chipset - EMS emulation control
  2446. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2447. ----------P026B------------------------------
  2448. PORT 026B - GI1904 Scanner Interface Adapter
  2449. Range:    PORT 022Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  2450. Range:    PORT 03ABh, PORT 03EBh
  2451. ----------P026E026F--------------------------
  2452. PORT 026E-026F - Dell Enhanced Parallel Port
  2453. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 0398h
  2454.  
  2455. 026E   W  index for data port
  2456. 026F  RW  EPP command data
  2457. ----------P0278------------------------------
  2458. PORT 0278 - Covox 'Speech Thing' COMPATIBLES
  2459. SeeAlso: PORT 022Fh"Covox",PORT 0388h-038Fh"soundmachine"
  2460.  
  2461. 0278   W  speech data output via printer data port
  2462.         (with mc-soundmachine, enabled if bit5=1 in 38F)
  2463. ----------P0278027E--------------------------
  2464. PORT 0278-027E - parallel printer port, same as 0378 and 03BC
  2465.  
  2466. 0278   W  data port
  2467. 0279  Rw  status port
  2468. 027A  RW  control port
  2469. ----------P0279------------------------------
  2470. PORT 0279 - Plug-and-Play - CONFIGURATION REGISTER
  2471. SeeAlso: PORT 0A79h
  2472.  
  2473. 0279  -W  index into Plug-and-Play register set for Read Data Port and
  2474.       Write Data Port I/O (see #P087,#P088)
  2475.  
  2476. (Table P087)
  2477. Values for Plug-and-Play Card-Level Registers:
  2478.  00h    set Read Port address
  2479.     bits 9-2 of Read Data port address (bits 15-10 are always 0, bits 1-0
  2480.       are always 11); valid Read Port addresses are 0203h-03FFh
  2481.  01h    serial isolation
  2482.  02h    configuration control
  2483.  03h    Wake command
  2484.     (specifies which card is accessed through configuration registers)
  2485.  04h    resource data
  2486.  05h    status
  2487.  06h    Card Select Number (CSN)
  2488.  07h    logical device number
  2489.     (selects which logical device on card is accessed at locations 30h-FFh)
  2490.     (see #P088)
  2491.  08h-1Fh reserved
  2492.  20h-2Fh vendor-specific
  2493. Note:    there is one set of these registers per installed card
  2494. SeeAlso: #P088
  2495.  
  2496. (Table P088)
  2497. Values for Plug-and-Play Logical Device Registers:
  2498.  30h    activate
  2499.     bit 0: device is active on ISA bus
  2500.     bits 7-1: reserved (0)
  2501.  31h    I/O range check
  2502.     bit 0: I/O Read Pattern select (if bit 1 set, then I/O reads return
  2503.         55h if this bit is set, AAh if this bit is clear)
  2504.     bit 1: I/O Range Check Enable: if set, all reads from device I/O
  2505.           registers return 55h or AAh, depending on bit 0
  2506.     bits 7-2: reserved (0)
  2507.  32h-37h reserved
  2508.  38h-3Fh vendor-specific
  2509.  40h-44h 24-bit ISA memory descriptor 0
  2510.  45h-47h reserved
  2511.  48h-4Ch 24-bit ISA memory descriptor 1
  2512.  4Dh-4Fh reserved
  2513.  50h-54h 24-bit ISA memory descriptor 2
  2514.  55h-57h reserved
  2515.  58h-5Ch 24-bit ISA memory descriptor 3
  2516.  5Dh-5Fh reserved
  2517.  60h-6Fh I/O configuration registers 0-7
  2518.  70h-71h IRQ channel select 0
  2519.  72h-73h IRQ channel select 1
  2520.  74h-75h DMA configuration registers 0-1
  2521.  76h-7Eh 32-bit memory range configuration register 0
  2522.  7Fh     reserved
  2523.  80h-88h 32-bit memory range configuration register 1
  2524.  89h-8Fh reserved
  2525.  90h-98h 32-bit memory range configuration register 2
  2526.  99h-9Fh reserved
  2527.  A0h-A8h 32-bit memory range configuration register 3
  2528.  A9h-EFh reserved for logical device configuration
  2529.  F0h-FEh vendor-specific
  2530.  FFh    reserved
  2531. Note:    there is one set of these registers per logical device
  2532. SeeAlso: #P087
  2533. ----------P0280------------------------------
  2534. PORT 0280 - LCD display on Wyse 2108 PC
  2535. ----------P02800288--------------------------
  2536. PORT 0280-0288    - non-standard COM port addresses (V20-XT by German magazine c't)
  2537.         selectable from 0280, 0288, 0290, 0298, 6A0, 6A8
  2538. ----------P0288028F--------------------------
  2539. PORT 0288-028F    - non-standard COM port addresses (V20-XT by German magazine c't)
  2540. 0280-0288    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  2541. 0290-0298
  2542. 0298-029F
  2543. ----------P02A002A7--------------------------
  2544. PORT 02A0-02A7 - Sunshine EW-901BN, EW-904BN
  2545.         EPROM writer card (release 1986) for EPROMs up to 27512
  2546. 02A0-02A3    adresses of the 8255 on the EW-90xBN
  2547. ----------P02A202A3--------------------------
  2548. PORT 02A2-02A3 - MSM58321RS clock
  2549. ----------P02A802A9--------------------------
  2550. PORT 02A8-02A9 - Intel 82C212B "Neat" chipset - EMS emulation control
  2551. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2552. ----------P02AB------------------------------
  2553. PORT 02AB - GI1904 Scanner Interface Adapter (default)
  2554. Range:    PORT 022Bh, PORT 026Bh, PORT 02EBh, PORT 032Bh, PORT 036Bh
  2555. Range:    PORT 03ABh, PORT 03EBh
  2556. Note:    the GI1904 is used by many SPI 400/800dpi gray/halftone/color handy
  2557.       scanners by Marstek, Mustek, Conrad, Völkner and others
  2558. ----------P02B002BF--------------------------
  2559. PORT 02B0-02BF - Trantor SCSI adapter
  2560. ----------P02B002DF--------------------------
  2561. PORT 02B0-02DF - alternate EGA,    primary EGA at 03C0
  2562. ----------P02B802B9--------------------------
  2563. PORT 02B8-02B9 - Intel 82C212B "Neat" chipset - EMS emulation control
  2564. Range: base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2565. ----------P02C002Cx--------------------------
  2566. PORT 02C0-02Cx - AST-clock
  2567. ----------P02C002DF--------------------------
  2568. PORT 02C0-02DF - XT-Real Time Clock 2 (default jumpered address)
  2569. ----------P02E002E8--------------------------
  2570. PORT 02E0-02E8 - LPT port address on the UniRAM card by German magazine c't
  2571. Range:    base address selectable from 0260, 02E0, 02E8, 02F0, 03E0, and 03E8.
  2572. ----------P02E002EF--------------------------
  2573. PORT 02E0-02EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2574.         (GAB 0 on XT)
  2575. 02E1  ??  GPIB (adapter 0)
  2576. 02E2
  2577. 02E3
  2578. ----------P02E002EF--------------------------
  2579. PORT 02E0-02EF - data aquisition     (AT)
  2580.  
  2581. 02E2  ??  data aquisition (adapter 0)
  2582. 02E3  ??  data aquisition (adapter 0)
  2583. ----------P02E8------------------------------
  2584. PORT 02E8 - S3 86C928 video controller (ELSA Winner 1000)
  2585. ----------P02E802E9--------------------------
  2586. PORT 02E8-02E9 - Intel 82C212B "Neat" chipset - EMS emulation control
  2587. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2588. ----------P02E802EF--------------------------
  2589. PORT 02E8-02EF - serial port, same as 02F8, 03E8 and 03F8 (COM4)
  2590. ----------P02E802EF--------------------------
  2591. PORT 02E8-02EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  2592.  
  2593. 02E8  R      display status
  2594. 02E8   W  horizontal total
  2595. 02EA  RW  Lookup: DAC mask
  2596. 02EB   W  Lookup: DAC read index
  2597. 02EC   W  Lookup: DAC write index
  2598. 02ED  RW  Lookup: DAC data
  2599. ----------P02EA------------------------------
  2600. PORT 02EA - S3 86C928 video controller (ELSA Winner 1000)
  2601. ----------P02EB------------------------------
  2602. PORT 02EB - GI1904 Scanner Interface Adapter
  2603. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 032Bh, PORT 036Bh
  2604. Range:    PORT 03ABh, PORT 03EBh
  2605. ----------P02F02F8 --------------------------
  2606. PORT 02F0-2F8  - LPT port address on the UniRAM card by German magazine c't
  2607.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  2608. ----------P02F802FF--------------------------
  2609. PORT 02F8-02FF - serial port, same as 02E8, 03E8 and 03F8 (COM2)
  2610.  
  2611. 02F8   W  transmitter holding register
  2612. 02F8  R      receiver buffer register
  2613. 02F8  RW  divisor latch, low byte    when DLAB=1
  2614. 02F9  RW  divisor latch, high byte    when DLAB=1
  2615. 02F9  RW  interrupt enable register when DLAB=0
  2616. 02FA  R      interrupt identification register
  2617. 02FB  RW  line control register
  2618. 02FC  RW  modem control register
  2619. 02FD  R      line status register
  2620. 02FF  RW  scratch register
  2621. ----------P0300------------------------------
  2622. PORT 0300 - Award POST Diagnostic
  2623. --------d-P0300------------------------------
  2624. PORT 0300 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  2625. SeeAlso: PORT 0200h"Digidesign"
  2626. ----------P03000301--------------------------
  2627. PORT 0300-0301 - Soundblaster 16 ASP MPU-Midi
  2628. ----------P0300????--------------------------
  2629. PORT 0300-???? - HP IEC/HP-IB adapter (e.g. for use with tape streamer HP9142)
  2630. ----------P0300031F--------------------------
  2631. PORT 0300-031F - 3com Ethernet adapters (default address)
  2632. ----------P0300????--------------------------
  2633. PORT 0300-???? - NE2000 compatible Ethernet adapters
  2634. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h
  2635. ----------P03000303--------------------------
  2636. PORT 0300-0303 - Panasonic 52x CD-ROM SCSI Miniport
  2637. Range:    PORT 0300h-0303h,PORT 0320h-0323h,PORT 0340h-0343h,PORT 0360h-0363h,
  2638.       and PORT 0380h-0383h
  2639. ----------P0300030F--------------------------
  2640. PORT 0300-030F - Philips CD-ROM player CM50
  2641. ----------P0300030F--------------------------
  2642. PORT 0300-030F - CompaQ Tape drive adapter. alternate address at 0100
  2643. ----------P0300031F--------------------------
  2644. PORT 0300-031F - prototype cards
  2645.         Periscope hardware debugger
  2646. ----------P030C030F--------------------------
  2647. PORT 030C-030F - AIMS LAB PC Radio
  2648.  
  2649.     configurable to 020C or 030C
  2650. ----------P0310031F--------------------------
  2651. PORT 0310-031F - Philips CD-ROM player CM50
  2652. ----------P03200323--------------------------
  2653. PORT 0320-0323 - XT HDC 1   (Hard Disk Controller)
  2654. SeeAlso: PORT 01F0h-01F7h
  2655.  
  2656. 0320  RW  data register
  2657. 0321   W  reset controller
  2658. 0321  R      read controller hardware status (see #P089)
  2659. 0322  R      read DIPswitch setting on XT controller card
  2660. 0322   W  generate controller-select pulse
  2661. 0323   W  write pattern to DMA and INT mask register
  2662.  
  2663. Bitfields for XT hard disk controller hardware status:
  2664. Bit(s)    Description    (Table P089)
  2665.  7-6    always 0
  2666.  5    logical unit number
  2667.  4-2    always 0
  2668.  1    error occurred
  2669.  0    always 0 
  2670. ----------P03240327--------------------------
  2671. PORT 0324-0327 - XT HDC 2   (Hard Disk Controller)
  2672. ----------P0328032B--------------------------
  2673. PORT 0328-032B - XT HDC 3   (Hard Disk Controller)
  2674. ----------P032B------------------------------
  2675. PORT 032B - GI1904 Scanner Interface Adapter
  2676. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 036Bh
  2677. Range:    PORT 03ABh, PORT 03EBh
  2678. ----------P032C032F--------------------------
  2679. PORT 032C-032F - XT HDC 4   (Hard Disk Controller)
  2680. ----------P03300331--------------------------
  2681. PORT 0330-0331 - MIDI interface
  2682. ----------P03300333--------------------------
  2683. PORT 0330-0333 - Adaptec 154xB/154xC SCSI adapter. default address.
  2684. Range:    alternate address at 0130, 0134, 0230, 0234 and 0334
  2685. ----------P0330033F--------------------------
  2686. PORT 0330-033F - CompaQ SCSI adapter. alternate address at 0130
  2687. ----------P0330033F--------------------------
  2688. PORT 0330-033F - Philips CD-ROM player CM50
  2689. ----------P03340337--------------------------
  2690. PORT 0334-0337 - Adaptec 154xB/154xC SCSI adapter.
  2691. Range:    alternate address at 0130, 0134, 0230, 0234 and 0330
  2692. ----------P0338------------------------------
  2693. PORT 0338 - AdLib soundblaster card
  2694. ----------P0338033F--------------------------
  2695. PORT 0338-033F - COM port addresses on UniRAM card by German magazine c't
  2696. Range:    selectable from 0238, 02E8, 02F8, 0338, 03E0, 03E8, 03F8
  2697. ----------P0340034F--------------------------
  2698. PORT 0340-034F - Philips CD-ROM player CM50
  2699. ----------P0340034F--------------------------
  2700. PORT 0340-034F - SCSI (1st Small Computer System Interface) adapter
  2701. Note:    alternate address at 0140-014F
  2702. ----------P0340034F--------------------------
  2703. PORT 0340-034F - Gravis Ultra Sound by Advanced Gravis
  2704. Range: The I/O address range is dipswitch selectable from:
  2705.        0200-020F and 0300-030F
  2706.        0210-021F and 0310-031F
  2707.        0220-022F and 0320-032F
  2708.        0230-023F and 0330-033F
  2709.        0240-024F and 0340-034F
  2710.        0250-025F and 0350-035F
  2711.        0260-026F and 0360-036F
  2712.        0270-027F and 0370-037F
  2713. SeeAlso: PORT 0240h-024Fh,PORT 0746h
  2714.    
  2715. 0340   W  MIDI Control (see #P090)
  2716. 0340  R      MIDI Status (see #P091)
  2717. 0341   W  MIDI Transmit Data
  2718. 0341  R      MIDI Receive Data
  2719. 0342  RW  GF1 Page Register / Voice Select
  2720. 0343  RW  GF1/Global Register Select (see #P092)
  2721. 0344  RW  GF1/Global Data Low Byte (16 bits)
  2722. 0345  RW  GF1/Global Data High Byte (8 bits)
  2723. 0346   W  Mixer Data Port
  2724. 0347  RW  GF1 DRAM
  2725.          Direct Read Write at Loction pointed with regs 43 and 44
  2726.  
  2727. Bitfields for Gravis Ultra Sound MIDI control register:
  2728. Bit(s)    Description    (Table P090)
  2729.  7       Receive IRQ (1 = enabled)
  2730.  5-6   Xmit IRQ
  2731.  0-1   Master Reset (1 = enabled)
  2732. SeeAlso: #P083,#P085,#P091
  2733.  
  2734. Bitfields for Gravis Ultra Sound MIDI status register:
  2735. Bit(s)    Description    (Table P091)
  2736.  7    Interrupt pending
  2737.  5    Overrun Error
  2738.  4    Framing Error
  2739.  1    Transmit Register Empty
  2740.  0    Receive Register Empty
  2741. SeeAlso: #P090,#P092
  2742.    
  2743. (Table P092)
  2744. Values for Gravis Ultra Sound GF1/Global Registers:
  2745. ---Voice specific registers---
  2746.  00h  w        Voice Control (see #P093)
  2747.  01h  w        Frequency Control
  2748.          bit 15-10     Integer Portion
  2749.          bit 9-1     Fractional Portion
  2750.  02h  w        Start Address HIGH
  2751.          bit 12-0     Address Lines 19-7
  2752.  03h  w        Start Address LOW
  2753.          bit 15-9     Address Lines 6-0
  2754.          bit 8-5     Fractional Part of Start Address
  2755.  04h  w        End Address HIGH
  2756.          bit 12-0     Address Lines 19-7
  2757.  05h  w        End Address LOW
  2758.          bit 15-9     Address Lines 6-0
  2759.          bit 8-5     Fractional Part of End Address
  2760.  06h  w        Volume Ramp Rate
  2761.          bit 5-0     Amount added
  2762.          bit 7-6     Rate
  2763.  07h  w        Volume Ramp Start
  2764.          bit 7-4     Exponent
  2765.          bit 3-0     Mantissa
  2766.  08h  w        Volume Ramp End
  2767.          bit 7-4     Exponent
  2768.          bit 3-0     Mantissa
  2769.  09h  w        Current Volume
  2770.          bit 15-12     Exponent
  2771.          bit 11-4     Mantissa
  2772.  0Ah  w        Current Address HIGH
  2773.          bit 12-0     Address Lines 19-7
  2774.  0Bh  w        Current Address LOW
  2775.          bit 15-9     Address Lines 6-0
  2776.          bit 8-0     Fractional Position
  2777.  0Ch  w        Pan Position
  2778.          bit 3-0     Pan Postion
  2779.  0Dh  w        Volume Control (see #P094)
  2780.  0Eh  w        Active Voices
  2781.          bit 5-0     #Voices -1  (allowed 13 - 31)
  2782.  0Fh  w        IRQ Source Register (see #P095)
  2783. ---NOT voice specific---
  2784.  41h  r/w   DRAM DMA Control (see #P096)
  2785.  42h  w        DMA Start Address
  2786.          bits 15-0     DMA Address Lines 19-4
  2787.  43h  w        DRAM I/O Address LOW
  2788.  44h  w        DRAM I/O Address HIGH
  2789.          bits 0-3     Upper 4 Address Lines
  2790.  45h  r/w   Timer Control
  2791.          bit 3     Enable Timer 2
  2792.          bit 2     Enable Timer 1
  2793.  46h  w        Timer 1 Count (granularity of 80 micro sec)
  2794.  47h  w        Timer 2 Count (granulatity of 320 micro sec)
  2795.  48h  w        Sampling Frequency
  2796.          rate = 9878400 / (16 * (FREQ + 2))
  2797.  49h  r/w   Sampling Control (see #P097)
  2798.  4Bh  w        Joystick Trim DAC
  2799.  4Ch  r/w   RESET
  2800.          bit 2     GF1 Master IRQ Enable
  2801.          bit 1     DAC Enable
  2802.          bit 0     Master Reset
  2803. ---Voice specific registers---
  2804.  80h  r        Voice Control (see 00h)
  2805.  81h  r        Frequency Control (see 01h)
  2806.  82h  r        Start Address HIGH (see 02h)
  2807.  83h  r        Start Address LOW (see 03h)
  2808.  84h  r        End Address HIGH (see 04h)
  2809.  85h  r        End Address LOW (see 05h)
  2810.  86h  r        Volume Ramp Rate (see 06h)
  2811.  87h  r        Volume Ramp Start (see 07h)
  2812.  88h  r        Volume Ramp End (see 08h)
  2813.  89h  r        Current Volume (see 09h)
  2814.  8Ah  r        Current Address HIGH (see 0Ah)
  2815.  8Bh  r        Current Address LOW (see 0Bh)
  2816.  8Ch  r        Pan Position (see 0Ch)
  2817.  8Dh  r        Volume Control (see 0Dh)
  2818.  8Eh  r        Active Voices (see 0Eh)
  2819.  8Fh  r        IRQ Status (see 0Fh)
  2820. SeeAlso: #P091
  2821.  
  2822. Bitfields for Gravis Ultra Sound voice control global register:
  2823. Bit(s)    Description    (Table P093)
  2824.  7     IRQ pending
  2825.  6     Direction
  2826.  5     Enable WAVE IRQ
  2827.  4     Enable bi-directional Looping
  2828.  3     Enable Looping
  2829.  2     Size data (8/16 bits)
  2830.  1     Stop Voice
  2831.  0     Voice Stopped
  2832. SeeAlso: #P092,#P094
  2833.  
  2834. Bitfields for Gravis Ultra Sound volume control global register:
  2835. Bit(s)    Description    (Table P094)
  2836.  7     IRQ Pending
  2837.  6     Direction
  2838.  5     Enable Volume Ramp IRQ
  2839.  4     Enable bi-directional Looping
  2840.  3     Enable Looping
  2841.  2     Rollover Condition
  2842.  1     Stop Ramp
  2843.  0     Ramp Stopped
  2844. SeeAlso: #P092,#P093
  2845.  
  2846. Bitfields for Gravis Ultra Sound IRQ source register:
  2847. Bit(s)    Description    (Table P095)
  2848.  7     WaveTable IRQ pending
  2849.  6     Volume Ramp IRQ pending
  2850.  4-0     Voice Number
  2851. SeeAlso: #P092,#P093,#P096
  2852.  
  2853. Bitfields for Gravis Ultra Sound DRAM DMA control register:
  2854. Bit(s)    Description    (Table P096)
  2855.  7     Invert MSB
  2856.  6     Data Size (8/16 bits)
  2857.  5     DMA Pending
  2858.  3-4     DMA Rate Divider
  2859.  2     DMA Channel Width (8/16 bits)
  2860.  1     DMA Direction (1 = read)
  2861.  0     DMA Enable
  2862. SeeAlso: #P092,#P095
  2863.  
  2864. Bitfields for Gravis Ultra Sound sampling control register:
  2865. Bit(s)    Description    (Table P097)
  2866.  7     Invert MSB
  2867.  6     DMA IRQ pending
  2868.  5     DMA IRQ enable
  2869.  2     DMA width (8/16 bits)
  2870.  1     Mode (mone/stereo)
  2871.  0     Start Sampling
  2872. SeeAlso: #P092
  2873. ----------P03400357--------------------------
  2874. PORT 0340-0357 - RTC (1st Real Time Clock for XT)
  2875.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  2876. Range:    alternate at 0240-0257
  2877. SeeAlso:  PORT 0240h-0257h
  2878.  
  2879. 0340  RW  0.001 seconds        0-99
  2880. 0341  RW  0.1 and 0.01 seconds    0-99
  2881. 0342  RW  seconds        0-59
  2882. 0343  RW  minutes        0-59
  2883. 0343  RW  hours            0-23
  2884. 0345  RW  day of week        1-7
  2885. 0346  RW  day of month        1-31
  2886. 0347  RW  month            1-12
  2887. 0348  RW  RAM (upper nybble only)
  2888. 0349  RW  year            0-99
  2889. 034A  RW  RAM last month storage
  2890. 034B  RW  RAM year storage (-80)
  2891. 034C  RW  RAM reserved
  2892. 034D  RW  RAM not used
  2893. 034E  RW  RAM not used
  2894. 034F  RW  RAM not used
  2895. 0350  R      interrupt status register
  2896. 0351   W  interrupt control register
  2897. 0352   W  counter reset
  2898. 0353   W  RAM reset
  2899. 0354  R      status bit
  2900. 0355   W  GO command
  2901. 0356  ??  standby interrupt
  2902. 0357  ??  test mode
  2903. ----------P03480357--------------------------
  2904. PORT 0348-0357 - DCA 3278
  2905. ----------P034C034F--------------------------
  2906. PORT 034C-034F - Gravis UltraMax by Advanced Gravis
  2907. Range:    The I/O address range is dipswitch selectable from:
  2908.        0200-020F and 0300-030F
  2909.        0210-021F and 0310-031F
  2910.        0220-022F and 0320-032F
  2911.        0230-023F and 0330-033F
  2912.        0240-024F and 0340-034F
  2913.        0250-025F and 0350-035F
  2914.        0260-026F and 0360-036F
  2915.        0270-027F and 0370-037F
  2916. ----------P035A035B--------------------------
  2917. PORT 035A-035B - Adaptec AH1520 jumper settings
  2918.  
  2919. 035A  R      I/O channel setup (see #P098)
  2920. 035B  R      transfer mode setup (see #P099)
  2921.  
  2922. Bitfields for Adaptec AH1520 channel setup jumper settings:
  2923. Bit(s)    Description    (Table P098)
  2924.  7    SCSI parity disabled
  2925.  6-5    DMA channel (00 = channel 0, 01 = 5, 10 = 6, 11 = 7)
  2926.  4-3    IRQ number (00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)
  2927.  2-0    SCSI ID
  2928. SeeAlso: #P099
  2929.  
  2930. Bitfields for Adaptec AH1520 transfer mode setup jumper settings:
  2931. Bit(s)    Description    (Table P099)
  2932.  7    DMA transfer mode (clear for PIO)
  2933.  6    boot enabled
  2934.  5-4    boot type
  2935.     00 ???
  2936.     01 boot from floppy
  2937.     10 print configured options
  2938.     11 boot from hard disk
  2939.  3    enable sync negotiation
  2940.  2    enable target disconnection
  2941.  1-0    unused???
  2942. SeeAlso: #P098
  2943. ----------P035F------------------------------
  2944. PORT 035F - ARTEC Handyscanner A400Z.  alternate address at 15F.
  2945. ----------P03600367--------------------------
  2946. PORT 0360-0367 - PC network (XT only)
  2947. ----------P0360036F--------------------------
  2948. PORT 0360-036F - PC network (AT)
  2949. ----------P0360036F--------------------------
  2950. PORT 0360-036F - National Semiconductor DP8390(1)C/NS3249C network chipset
  2951. Note:    cards based on this IEEE 802.3 networking chipset can use any range
  2952.       of 16 consecutive addresses, and provide a total of four pages of
  2953.       sixteen registers (see #P100,#P101,#P102,#P114)
  2954.  
  2955. (Table P100)
  2956. Values for NS DP8390C/NS3249C network chipset Page 0 registers:
  2957. Number    Read Register                Write Register
  2958.  00h    Command reg. (see #P104)    CR    Command reg.        CR
  2959.  01h    current local DMA address 0    CLDA0    page start reg.        PSTART
  2960.  02h    current local DMA address 1    CLDA1    page stop reg.        PSTOP
  2961.  03h    boundary pointer        BNRY    boundary pointer    BNRY
  2962.  04h    transmit status reg.        TSR    Tx page start address    TPSR
  2963.  05h    number of collisions reg.    NCR    Tx byte count reg.0    TBCR0 
  2964.  06h    FIFO                    Tx byte count reg.1    TBCR1
  2965.  07h    interrupt status reg.        ISR    interrupt status reg.    ISR
  2966.  08h    current remote DMA address 0    CRDA0    remote start addr.reg.0 RSAR0
  2967.  09h    current remote DMA address 1    CRDA1    remote start addr.reg.1 RSAR1
  2968.  0Ah    reserved                remote byte count reg.0 RBCR0
  2969.  0Bh    reserved                remote byte count reg.1 RBCR1
  2970.  0Ch    receive status reg.        RSR    Rx configuration reg.    RCR
  2971.  0Dh    tally counter 0 (frame errors)    CNTR0    Tx configuration reg.    TCR
  2972.  0Eh    tally counter 1 (CRC errors)    CNTR1    data configuration reg. DCR
  2973.  0Fh    tally counter 2 (missed pkt)    CNTR2    interrupt mask reg.    IMR
  2974. SeeAlso: #P101,#P102,#P103
  2975.  
  2976. (Table P101)
  2977. Values for NS DP8390C/NS3249C network chipset Page 1 registers:
  2978. Number    Read/Write
  2979.  00h    Command            CR (see #P104)
  2980.  01h    physical address reg.0    PAR0
  2981.  02h    physical address reg.1    PAR1        
  2982.  03h    physical address reg.2    PAR2        
  2983.  04h    physical address reg.3    PAR3        
  2984.  05h    physical address reg.4    PAR4        
  2985.  06h    physical address reg.5    PAR5        
  2986.  07h    current page reg.    CURR            
  2987.  08h    multicast address reg.0 MAR0        
  2988.  09h    multicast address reg.1 MAR1        
  2989.  0Ah    multicast address reg.2 MAR2        
  2990.  0Bh    multicast address reg.3 MAR3        
  2991.  0Ch    multicast address reg.4 MAR4        
  2992.  0Dh    multicast address reg.5 MAR5        
  2993.  0Eh    multicast address reg.6 MAR6        
  2994.  0Fh    multicast address reg.7 MAR7        
  2995. SeeAlso: #P100,#P102,#P103
  2996.  
  2997. (Table P102)
  2998. Values for NS DP8390C/NS3249C network chipset Page 2 registers:
  2999. Number    Read Register                Write Register
  3000.  00h    Command                CR    Command             CR
  3001.  01h    page start reg.            PSTART    current local DMA addr.0 CLDA0
  3002.  02h    page stop reg.            BPSTOP    current local DMA addr.1 CLDA1
  3003.  03h    remote next packet pointer        remote next packet pointer
  3004.  04h    Tx page start address        TPSR    reserved
  3005.  05h    local next packet pointer        local next packet pointer
  3006.  06h    address counter (upper)            address counter (upper)
  3007.  07h    address counter (lower)            address counter (lower)
  3008.  08h    reserved                reserved
  3009.  09h    reserved                reserved
  3010.  0Ah    reserved                reserved
  3011.  0Bh    reserved                reserved
  3012.  0Ch    Rx configuration reg.        RCR    reserved
  3013.  0Dh    Tx configuration reg.        TCR    reserved
  3014.  0Eh    data configuration reg.        DCR    reserved
  3015.  0Fh    interrupt mask reg.        IMR    reserved
  3016. Note:    this is a diagnostics page, and should never be modfied under normal
  3017.       operation.
  3018. SeeAlso: #P100,#P101,#P103
  3019.  
  3020. (Table P103)
  3021. Values for NS DP8390C/NS3249C network chipset Page 3 registers:
  3022. Number    Read Register                Write Register
  3023.  00h    Command CR (see #P104)            Command CR
  3024. Note:    Test Page - should never be modified!
  3025. SeeAlso: #P100,#P101,#P102
  3026.  
  3027. Bitfields for NS DP8390C/NS3249C network chipset command register (00h):
  3028. Bit(s)    Description    (Table P104)
  3029.  0    software reset command (1=offline, 0=online)
  3030.  1    do not activate NIC after reset command
  3031.  2    start transmision of a packet
  3032.  3-5    remote DMA command
  3033.     000 not allowed
  3034.     001 remote read
  3035.     010 remote write
  3036.     011 send packet
  3037.     1xx abort/complete rmote DMA
  3038.  6-7    page select
  3039.     00 register page 0
  3040.     01 register page 1
  3041.     10 register page 2
  3042.     11 register page 3
  3043. SeeAlso: #P103 
  3044. ----------P036B------------------------------
  3045. PORT 036B - GI1904 Scanner Interface Adapter
  3046. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh
  3047. Range:    PORT 03ABh, PORT 03EBh
  3048. ----------P03700377--------------------------
  3049. PORT 0370-0377 - FDC 2    (2nd Floppy Disk Controller)    first FDC at 03F0
  3050. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  3051.       compatible), or an 82072 or 82077AA for perpendicular recording at
  3052.       2.88M
  3053. SeeAlso: PORT 03F0h-03F7h
  3054.  
  3055. 0370  R      diskette Extra High Density controller board jumpers (AT)
  3056. 0370  R      diskette controller status A (PS/2, PS/2 model 30)
  3057. 0371  R      diskette controller status B (PS/2, PS/2 model 30)
  3058. 0372   W  diskette controller DOR (Digital Output Register)
  3059. 0374  R      diskette controller main status register
  3060. 0374   W  diskette controller datarate select register
  3061. 0375  RW  diskette controller command/data register
  3062. 0376  RW  (2nd FIXED disk controller status/data register)
  3063. 0377  RW  (2nd FIXED disk controller drive address register)
  3064. 0377  R      diskette controller DIR (Digital Input Register)
  3065. 0377   W  select register for diskette data transfer rate
  3066. ----------P0378------------------------------
  3067. PORT 0378 - Covox 'Speech Thing' COMPATIBLE SPEECH OUTPUT
  3068. SeeAlso: PORT 022Fh"mc-soundmachine",PORT 0388h-038Fh"soundmachine"
  3069.  
  3070. 0378   W  speech output via printer port
  3071.       (with mc-soundmachine, enabled if bit4=1 in 38F)
  3072. ----------P0378037A--------------------------
  3073. PORT 0378-037A - parallel printer port, same as 0278 and 03BC
  3074.  
  3075. 0378   W  data port
  3076. 0379  RW  status port
  3077. 037A  RW  control port
  3078.  
  3079. 037B  ??  bit 7: shadow RAM on/off (UniRAM adapter,according to c't 7/90)
  3080. ----------P0380038F--------------------------
  3081. PORT 0380-038F - 2nd BSC (Binary Synchronous Communication) adapter
  3082. SeeAlso:  PORT 03A0h"BSC"
  3083. ----------P0380038F--------------------------
  3084. PORT 0380-038C - 2nd SDLC (Synchronous Data Link Control) adapter
  3085. Notes:    Initialization of the SDLC adapter is performed in a typical 
  3086.           sequence like this: Setup 8255 port A-C configuration by writing
  3087.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  3088.       to 382h. Reset 8273 internal registers by pulsing 8255 port B4.
  3089.       After this the 8253 has to be programmed to the desired values
  3090.       (counter 0 in mode 3). Now the 8273 is ready to be configured for
  3091.       the operating mode that defines the communication environment in
  3092.       which it will be used.
  3093.     Note on 8273: Each 8273 protocol controllers internal register is
  3094.       programmed by individual set/reset commands (via 388h) in
  3095.       conjunction with a parameter (via 389h) that give an OR/AND mask
  3096.       to the internal register value.
  3097.       Although the 8273 is a full duplex device, there is only one
  3098.       command register. Thus, the command register must be used for
  3099.       only one command sequence at a time and the transmitter and
  3100.       receiver may never be simultaneously in a command phase.
  3101.       The system software starts the command phase by writing a command
  3102.       byte into the command register. If further information is required
  3103.       by the 8273 prior to execution of the command, the system software
  3104.       must write the list of parameters into the parameter register.
  3105. SeeAlso: PORT 03A0h"SDLC"
  3106.  
  3107. 0380  R    on adapter 8255(A5) port A: internal/external sensing (see #P194)
  3108. 0381   W   on adapter 8255(A5) port B: external modem interface (see #P195)
  3109. 0382  RW   on adapter 8255(A5) port C: internal control (see #P196)
  3110. 0383  ?W   on adapter 8255(A5) mode initialization
  3111. 0384  RW   on adapter 8253 (programmable counter) counter 0:
  3112.         LSB / MSB square wave generator (input for timer 2, connected
  3113.           to 8255 bitC5)
  3114. 0385  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  3115.                 (connected to 8255 bitA7, IRQ4 level)
  3116. 0386  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  3117.                 (connected to 8255 bitA6, IRQ4 level)
  3118. 0387  ?W   on adapter 8253 mode register (see #P197)
  3119. 0388  R    on adapter 8273 status register (see #P198)
  3120. 0388   W   on adapter 8273 command register (see #P199)
  3121. 0389  R    on adapter 8273 (immediate) result register (see #P206)
  3122. 0389   W   on adapter 8273 parameter register
  3123.         Commands issued via PORT 0388h may need additional parameters,
  3124.           which have to be passed through this port (see table).
  3125. 038A  R    on adapter 8273 transmit INT status (DMA/INT)
  3126. 038A   W   on adapter 8274 reset
  3127. 038B  R    on adapter 8273 receive INT status (DMA/INT)
  3128. 038C   W   on adapter 8273 data: direct program control (DPC)
  3129.       scratch-pad
  3130.  
  3131. Bitfields for SDLC 8255 port A:
  3132. Bit(s)    Description    (Table P194)
  3133.  7    =1 timer 1 output active
  3134.  6    =1 timer 2 output active
  3135.  5    =1 modem status changed
  3136.  4    receive clock active (if pulsing)
  3137.  3    =0 clear to send is on from interface
  3138.  2    transmit clock active (if pulsing)
  3139.  1    =0 data carrier detect is on from interface
  3140.  0    =0 ring indicator is on from interface
  3141. SeeAlso: #P195,#P196
  3142.  
  3143. Bitfields for SDLC 8255 port B:
  3144. Bit(s)    Description    (Table P195)
  3145.  7    enable IRQ 4 level interrupt
  3146.  6    =1 gate timer 1
  3147.  5    =1 gate timer 2
  3148.  4    =1 reset 8273
  3149.  3    =1 reset modem status changed logic
  3150.  2    =0 turn on test
  3151.  1    =0 turn on select standby at modem interface
  3152.  0    =0 turn on data signal rate select at modem interface
  3153. SeeAlso: #P194,#P196
  3154.  
  3155. Bitfields for SDLC 8255 port C:
  3156. Bit(s)    Description    (Table P196)
  3157.  7 R-    =? not used (detection: =1 SDLC, =0 may be SDLC or BSC??)
  3158.  6 R-    =0 test indicate active
  3159.  5 R-    timer 0 output (if pulsing)
  3160.  4 R-    receive data (if pulsing)
  3161.  3 -W    =0 gate interrupts 3 and 4
  3162.  2 -W    =1 electronic wrap
  3163.  1 -W    =1 gate external clock
  3164.  0 -W    =1 gate internal clock
  3165. SeeAlso: #P194,#P195
  3166.  
  3167. Bitfields for SDLC 8253 mode register:
  3168. Bit(s)    Description    (Table P197)
  3169.  7-6    SC1-SC0  00, 01, 10= select counter 0,1,2; 11=illegal
  3170.  5-4    RL1-RL0  00= couner latching operation
  3171.                  01= read/load most significant byte (MSB)
  3172.                  10= read/load least significant byte (LSB)
  3173.          11= read/load LSB first, then MSB
  3174.  3-1    M2-M0    000= mode 0
  3175.                  001= mode 1
  3176.          x10= mode 2
  3177.          x11= mode 3
  3178.          100= mode 4
  3179.          101= mode 5
  3180.  0    BCD      0= binary counter 16bits
  3181.                  1= BCD counter 4 decades
  3182.  
  3183. Bitfields for SDLC 8273 status register:
  3184. Bit(s)    Description    (Table P198)
  3185.  7    =1 command busy (CBSY)
  3186.  6    =1 command buffer full (CBF)
  3187.  5    =1 command parameter buffer full (CPBF)
  3188.  4    =1 command result buffer full (CRBF)
  3189.  3    =1 Rx interupt (RxINT)
  3190.  2    =1 Tx interupt (TxINT)
  3191.  1    =1 RxINT result available (RxIRA)
  3192.  0    =1 TxINT result available (TxIRA)
  3193. SeeAlso: #P199
  3194.  
  3195. (Table P199)
  3196. Values for SDCL 8273 command register:
  3197.  commands:                 parameters:  results:   result port: int:
  3198.   A4: set one-bit delay     set mask     -             -        no
  3199.   64: reset one-bit delay   reset mask   -             -        no
  3200.   97: set data transfer     set mask     -             -        no
  3201.   57: reset data transfer   reset mask   -             -        no
  3202.   91: set operating mode    set mask     -             -        no
  3203.   51: reset operating mode  reset mask   -             -        no
  3204.   A0: set serial I/O mode   set mask     -             -        no
  3205.   60: reset serial I/O mode reset mask   -             -        no
  3206.   C0: general receive       B0,B1        RIC,R0,R1,A,C RXI/R   yes
  3207.   C1: selective receive     B0,B1,A1,A2  RIC,RD,R1,A,C RXI/R   yes
  3208.   C5: receive disable       -            -             -        no
  3209.   C8: transmit frame        L0, L1, A, C TIC           TXI/R   yes
  3210.   C9: transmit transparent  L0, L1       TIC           TXI/R   yes
  3211.   CC: abort transmit frame  -            TIC           TXI/R   yes
  3212.   CD: abort transmit        -            TIC           TXI/R   yes
  3213.   22: read 8273 port A      -            port value    result   no
  3214.   23: read 8273 port B      -            port value    result   no
  3215.   A3: set 8273 port A bit   set mask     -             -        no
  3216.   63: set 8273 port B bit   reset mask   -             -        no
  3217. Notes:    B0/B1 LSB/MSB of the receiver buffer length
  3218.     L0/L1 LSB/MSB of the Tx buffer length
  3219.     A1/A2 receive frame address match field one/two
  3220.     A     address fieldof received frame. In non-buffered mode, this
  3221.               result is not provided.
  3222.     C     control field of received frame. In non-buffered mode, this
  3223.               result is not provided.
  3224.         RXI/R TXI/R receive/transmit interrupt result register
  3225.         R0/R1 LBS/MSB of the length of the frame received
  3226.     RIC/TIC receiver/transmitter interrupt result code
  3227. SeeAlso: #P200,#P201,#P202,#P203,#P204,#P205
  3228.  
  3229. Bitfields for SDLC 8273 interal port A: Modem Control Input Port:
  3230. Bit(s)    Description    (Table P200)
  3231.  7-5    not used
  3232.  4    DSR change (PA4)
  3233.  3    CTS change (PA3)
  3234.  2    Data Set Ready (PA2)
  3235.  1    Carrier Detect (PA1)
  3236.  0    Clear to Send (PA0)
  3237. SeeAlso: #P199
  3238.  
  3239. Bitfields for SDLC 8273 interal port B: Modem Control Output Port:
  3240. Bit(s)    Description    (Table P201)
  3241.  7-6    not used
  3242.  5    Flag Detect (PB5)
  3243.  4-3    reserved
  3244.  2    Data Terminal Ready (PB2)
  3245.  1    reserved (PB1)
  3246.  0    Request to Send (PB0)
  3247. SeeAlso: #P199
  3248.  
  3249. Bitfields for SDLC 8273 internal: Operating Mode Register:
  3250. Bit(s)    Description    (Table P202)
  3251.  7-6    not used
  3252.  5    =1 HDLC abort enable
  3253.  4    =1 EOP interrupt enable
  3254.  3    =1 enable early Tx interrupt
  3255.  2    =1 Buffered Mode
  3256.  1    =1 Two Preframe Sync Characters
  3257.  0    =1 Flag Stream Mode
  3258. SeeAlso: #P199
  3259.  
  3260. Bitfields for SDLC 8273 internal: Serial I/O Register:
  3261. Bit(s)    Description    (Table P203)
  3262.  7-3    not used
  3263.  2    =1 Data Loopback
  3264.  1    =1 Clock Loopback
  3265.  0    =1 NRZI Mode
  3266. SeeAlso: #P199
  3267.  
  3268. Bitfields for SDLC 8273 internal: Data Transfer Mode Register:
  3269. Bit(s)    Description    (Table P204)
  3270.  7-1    not used
  3271.  0    =1 Interrupt Data Transfers
  3272. SeeAlso: #P199
  3273.  
  3274. Bitfields for SDLC 8273 internal: One-Bit Delay Mode Register:
  3275. Bit(s)    Description    (Table P205)
  3276.  7 =1    One-Bit Delay Enable
  3277.  6-0    not used
  3278. SeeAlso: #P199
  3279.  
  3280. (Table P206)
  3281. Values for SDLC 8273 result register:
  3282.  transmit result codes:          status after interrupt:
  3283.   0C: early transmit interrupt    transmitter active
  3284.   0D: frame transmit complete     idle or flags
  3285.   0E: DMA underrun                abort
  3286.   0F: clear to send error         abort
  3287.   10: abort complete              idle or flags
  3288.  receive result codes:
  3289.   X0: A1 match / general receive  active
  3290.   X1: A2 match                    active
  3291.   03: CRC error                   active
  3292.   04: abort detected              active
  3293.   05: idle detected               disabled
  3294.   06: EOP detected                disabled
  3295.   07: frame less than 32 bits     active
  3296.   08: DMA overrun                 disabled
  3297.   09: memory buffer overflow      disabled
  3298.   0A: carrier detect failure      disabled
  3299.   0B: receiver interrupt overrun  disabled
  3300.  X bits received inlast byte:
  3301.    E: all eight bits of last byte (bit7-0)
  3302.    0: bit0 only
  3303.    8: bit1-0
  3304.    4: bit2-0
  3305.    C: bit3-0
  3306.    2: bit4-0
  3307.    A: bit5-0
  3308.    6: bit6-0
  3309. ----------P03880389--------------------------
  3310. PORT 0388-0389 - AdLib - MONO SOUND OUTPUT
  3311. Note:    also supported by SoundBlaster and compatibles
  3312. SeeAlso: PORT 0220h-0223h,PORT 0388h-038Fh"soundmachine"
  3313.  
  3314. 0388  R      both speakers -- Status
  3315.         bit7  : interrupt request (IRQ)
  3316.         bit6  : timer 1 overflow
  3317.         bit5  : timer 2 overflow
  3318.         bit4-0: reserved
  3319. 0388   W  both speakers -- Address port (see #P105)
  3320.     index in OPL2 (YMF3812), OPL3 (YMF262), OPL4 (YF278-F)
  3321. 0389   W  data port
  3322. Note:    the AdLib requires a delay of 3.3 microseconds between writing to
  3323.       PORT 0388h and writing to PORT 0389h, and a delay of 23 microseconds
  3324.       after a write to PORT 0389h before any other operation is allowed
  3325.  
  3326. (Table P105)
  3327. Values for AdLib address port index:
  3328.  01h    Enable waveform control
  3329.     bit 7-6: (OPL4, OPL3 in OPL2 mode only) lsi test
  3330.     bit 5: (OPL2 only) wave select enable (WS)
  3331.            (OPL4, OPL3) lsi test
  3332.     bit 4-0: lsi test
  3333.  02h    Timer #1 data (OPL2 and OPL3 in OPL2 mode only)
  3334.  03h    Timer #2 data (OPL2 and OPL3 in OPL2 mode only)
  3335.  04h    Timer control flags (OPL2 and OPL3 in OPL2 mode only)
  3336.     bit 7  : reset interrupt (RST)
  3337.     bit 6  : timer 1 mask (MASK1)
  3338.     bit 5  : timer 2 mask (MASK2)
  3339.     bit 4-2: reserved
  3340.     bit 1  : start timer 2 (ST2)
  3341.     bit 0  : start timer 1 (ST1)
  3342.  04h    (OPL3 in OPL3 mode only) connection select
  3343.     bit 7-6: reserved
  3344.     bit 5-0: connection selection
  3345.  05h    (OPL3) compatibility register
  3346.     bit 7-1: reserved
  3347.     bit 0: enable OPL3 mode (NEW), default disabled
  3348.  08h    Speech synthesis mode
  3349.     bit 7: (OPL2 only) speech synthesis or FM music mode (CSM)
  3350.     bit 6: select keyboard split point (SEL/NTS)
  3351.     bit 5-0: reserved
  3352.  20h-35h Amplitude Modulation / Vibrato
  3353.     bit 7: AM modulation (AM)
  3354.     bit 6: vibrato (VIB)
  3355.     bit 5: sustain (EG)
  3356.     bit 4: keyboard scaling rate (KSR)
  3357.     bit 3-0: multi (MF)
  3358.  40h-55h Level key scaling / Total level
  3359.     bit 7-6: key scale level (KSL)
  3360.     bit 5-0: total level (TL)
  3361.  60h-75h Attack / Decay rate
  3362.     bit 7-4: attack rate
  3363.     bit 3-0: decay rate
  3364.  80h-95h Sustain / Release rate
  3365.     bit 7-4: sustain level
  3366.     bit 3-0: release rate
  3367.  A0h-A8h Octave / Frequency (LSB)
  3368.  A9h-AFh ???
  3369.  B0h-B8h Octave / Frequency Number
  3370.     bit 7-6: reserved
  3371.     bit 5  : key on, mute
  3372.     bit 4-2: block, octave
  3373.     bit 1-0: f-number (MSB)
  3374.  BDh    percussion, vibrato, AM    (OPL2, OPL3 in OPL2 mode only)
  3375.     bit 7: amplitude modulation (AM)
  3376.     bit 6: vibrato (VIB)
  3377.     bit 5: ryhthm, percussion on/off (R)
  3378.     bit 4: bass drum on/off (BD)
  3379.     bit 3: snare drum on/off (SD)
  3380.     bit 2: tom-tom on/off (TOM)
  3381.     bit 1: top cymbal on/off (TC)
  3382.     bit 0: hi hat on/off (HH)
  3383.  C0h-C8h Feedback / Algorithm
  3384.     bit 7-4: OPL3: channel D-A
  3385.     bit 3-1: feedback
  3386.     bit 0: connection
  3387.  E0h-F5h Waveform Selection
  3388.     bit 7-3: reserved
  3389.     bit 2  : (OPL3) waveform bit2
  3390.     bit 1-0: waveform
  3391. SeeAlso: #P106
  3392.  
  3393. (Table P106)
  3394. Values for Sound Blaster registers inside groups:
  3395. Offset
  3396.  +00..+02: operators 1-3    modulator channel 1-3
  3397.  +03..+05: operators 4-6    carrier channel 1-3
  3398.  +08..+0A: operators 7-9    modulator channel 4-6
  3399.  +0B..+0D: operators 10-12  carrier channel 4-6
  3400.  +10..+12: operators 13-15  modulator channel 7-9
  3401.  +13..+15: operators 16-18  carrier channel 7-9
  3402.  +06, +07, +0E, +0F: reserved
  3403. SeeAlso: #P105
  3404. ----------P03880389--------------------------
  3405. PORT 0388-0389 ---- Soundblaster PRO FM-Chip
  3406. ----------P0388038B--------------------------
  3407. PORT 0388-038B ---- Soundblaster 16 ASP FM-Chip
  3408. ----------P0388038F--------------------------
  3409. PORT 0388-038F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  3410. Note:    Adlib-compatible, Covox 'voice master' & 'speech thing' compatible
  3411.       soundcard
  3412. SeeAlso: PORT 022Fh"soundmachine",PORT 0278h"Covox"
  3413.  
  3414. 0388   W  Covox 'speech thing'compatible speech output via printer port?
  3415.         enabled if bit 6 set in PORT 038Fh
  3416. 0388  RW  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  3417.         (see PORT 0388h-0389h"Sound Blaster")
  3418. 0389   W  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  3419.         (see PORT 0388h-0389h"Sound Blaster")
  3420. 038A   W  I²C control for TDA7302 NF-MUX and X24C04 EEPROM
  3421.         bit 7: I²C bus SDA out (data),  enabled if bit2=1 in PORT 038Fh
  3422.         bit 0: I²C bus SCL out (clock), enabled if bit2=1 in PORT 038Fh
  3423. 038B  R      I²C status for TDA7302 NF-MUX and X24C04 EEPROM
  3424.         bit 7: I²C bus SDA in (data),  enabled if bit2=1 in PORT 038Fh
  3425.         bit 0: I²C bus SCL in (clock), enabled if bit2=1 in PORT 038Fh
  3426. 038F  RW  configuration port (power on default=0, all features disabled)
  3427.     (see #P107)
  3428.  
  3429. Bitfields for mc-soundmachine configuration port:
  3430. Bit(s)    Description    (Table P107)
  3431.  7    Covox 'voice master' enabled at PORT 022Fh
  3432.  6     ""   'speech thing' enabled at PORT 03BCh
  3433.  5     ""             enabled at PORT 0278h
  3434.  4     ""             enabled at PORT 0378h
  3435.  3    not used (0388???)
  3436.  2    I²C bus enabled (see PORT 038Ah,PORT 038Bh)
  3437.  1    gameport enabled (see PORT 0201h)
  3438.  0    AdLib registers (see PORT 0388h,PORT 0389h) enabled
  3439. ----------P03900397--------------------------
  3440. PORT 0390-0397 - Sunshine EW-901B, EW-904B
  3441.         EPROM writer card for EPROMs up to 27512
  3442. 0390-0393  ??  adresses of the 8255 on the EW-90xB
  3443. ----------P0390039F--------------------------
  3444. PORT 0390-039F - Cluster adapter (AT)
  3445.  
  3446. 0390  ??  (adapter 0)    (XT)
  3447. 0391  ??  (adapter 0)    (XT)
  3448. 0392  ??  (adapter 0)    (XT)
  3449. 0393  ??  (adapter 0)    (XT)
  3450. ----------P03980399--------------------------
  3451. PORT 0398-0399 - Dell Enhanced Parallel Port
  3452. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 026Eh
  3453.  
  3454. 0398   W  index for data port
  3455. 0399  RW  EPP command data
  3456. ----------P03A003AF--------------------------
  3457. PORT 03A0-03AC - 1st SDLC (Binary Synchronous Data Link Control adapter)
  3458. SeeAlso: PORT 0380h"SDLC"
  3459. ---------------------------------------------
  3460. PORT 03A0-03AF - 1st BSC (Binary Synchronous Communication) adapter
  3461. Notes:    Initialization of the BSC adapter is performed in a typical
  3462.       sequence like this: Setup 8255 port A-C configuration by writing
  3463.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  3464.       to 382h. Reset 8251A internal registers by pulsing 8255 port B4.
  3465.       After this the 8253 has to be programmed to the desired values
  3466.       (counter 0 not used, counters 1 and 2 to mode 0). Now, the 8251A
  3467.       is ready to be loaded with a set of control words that define the
  3468.       communication environment.
  3469.     8251A: The control words are split into two formats, mode
  3470.       instruction and command instruction. The mode instruction must
  3471.       be inserted immediately after a reset operation (via 8255 port B4
  3472.       or setting command instruction bit6 to 'internal reset').
  3473.       The required synchronization characters are next loaded into the
  3474.       8251A (usually 32h for BSC). All control words written to the
  3475.       8251A after this will load the command instruction.
  3476.              reset -> mode instruction
  3477.                       SYNC character 1
  3478.                       SYNC character 2
  3479.               command instruction
  3480.                       data ...
  3481.                       command instruction
  3482.                       data ...
  3483.                       command instruction
  3484.                       ...
  3485. SeeAlso: PORT 0380h"BSC"
  3486.  
  3487. 03A0  R    on adapter 8255(A5) port A: internal/external sensing (see #P188)
  3488. 03A1   W   on adapter 8255(A5) port B: external modem interface (see #P189)
  3489. 03A2  RW   on adapter 8255(A5) port C: internal control (see #P190)
  3490. 03A3  ?W   on adapter 8255(A5) mode initialization
  3491. 03A4  RW   on adapter 8253 (programmable counter) counter 0:
  3492.         LSB / MSB square wave generator (unused in sync mode)
  3493. 03A5  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  3494.                 (connected to 8255 bitA7, IRQ4 level)
  3495. 03A6  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  3496.                 (connected to 8255 bitA6, IRQ4 level)
  3497. 03A7  ?W   on adapter 8253 mode register (see #P191)
  3498. 03A8  RW   on adapter 8251: data (see #P192)
  3499. 03A9  R    on adapter 8251: command/mode/USART status register (see #P193)
  3500.  
  3501. Bitfields for BSC 8255 port A:
  3502. Bit(s)    Description    (Table P188)
  3503.  7    =1 timer 1 output active
  3504.  6    =1 timer 2 output active
  3505.  5    =1 TxRDY active
  3506.  4    receive clock active (if pulsing)
  3507.  3    =0 clear to send is on from interface
  3508.  2    transmit clock active (if pulsing)
  3509.  1    =0 data carrier detect is on from interface
  3510.  0    =0 ring indicator is on from interface
  3511. SeeAlso: #P189
  3512.  
  3513. Bitfields for BSC 8255 port B:
  3514. Bit(s)    Description    (Table P189)
  3515.  7    =1 enable IRQ 4 level interrupt (timer 1 and 2)
  3516.  6    =1 gate timer 1
  3517.  5    =1 gate timer 2
  3518.  4    =1 reset 8251A
  3519.  3    =1 not used
  3520.  2    =0 turn on test
  3521.  1    =0 turn on select standby
  3522.  0    =0 turn on data signal rate select
  3523. SeeAlso: #P188,#P190
  3524.  
  3525. Bitfields for BSC 8255 port C:
  3526. Bit(s)    Description    (Table P190)
  3527.  7 R-    =0 BSC adapter (=1 may be used to detect SDLC??)
  3528.  6 R-    =0 test indicate active
  3529.  5 R-    timer 0 output (if pulsing)
  3530.  4 R-    receive data (if pulsing)
  3531.  3 -W    =0 enable timer 1 and 2 IRQ4 and receive IRQ 4
  3532.  2 -W    =1 electronic wrap
  3533.  1 -W    =1 gate external clock
  3534.  0 -W    =1 gate internal clock
  3535. SeeAlso: #P188,#P189
  3536.  
  3537. Bitfields for BSC 8253 mode register:
  3538. Bit(s)    Description    (Table P191)
  3539.  7-6    SC1-SC0  00, 01, 10= select counter 0,1,2; 11=illegal
  3540.  5-4    RL1-RL0  00= couner latching operation
  3541.                  01= read/load most significant byte (MSB)
  3542.                  10= read/load least significant byte (LSB)
  3543.                  11= read/load LSB first, then MSB
  3544.  3-1    M2-M0    000= mode 0 (for counter 1 and 2)
  3545.                  001= mode 1 (not used for BSC)
  3546.                  x10= mode 2 (not used for BSC)
  3547.                  x11= mode 3 (not used for BSC)
  3548.                  100= mode 4 (not used for BSC)
  3549.                  101= mode 5 (not used for BSC)
  3550.  0    BCD        0= binary counter 16bits
  3551.                    1= BCD counter 4 decades
  3552.  
  3553. Bitfields for BSC 8251 data:
  3554. Bit(s)    Description    (Table P192)
  3555. ---mode instruction (W)---
  3556.  7    =0 Double SYNC Character
  3557.  6    =1 SYNDET is an Input
  3558.  5    =1 Even Parity
  3559.  4    =1 Parity Enable
  3560.  3-2    Character Length 00=5bits, 01=6bits, 10=7bits, 11=8bits
  3561.  1-0    not used (always 0)
  3562. ---SYNC character 1/2 (W)---
  3563.  string of two characters to be sync'ed at (in hunt mode).
  3564. ---command instruction (W)---
  3565.  7      Enter Hunt Mode
  3566.  6      Internal Reset
  3567.  5      Request to Send
  3568.  4      Error Reset
  3569.  3      Send Break Character
  3570.  2      Receive Enable
  3571.  1      Data Terminal Ready
  3572.  0      Transmit Enable
  3573. ---data (RW)---
  3574.     any data
  3575. SeeAlso: #P191,#P193
  3576.  
  3577. Bitfields for BSC 8251 command/mode/USART status:
  3578. Bit(s)    Description    (Table P193)
  3579.  7    Data Set Ready (indicated that DSR is at 0 level)
  3580.  6    SYNDET
  3581.  5    Framing Error (not used for synchronous communications)
  3582.  4    Overrun Error (OE flag on when Overrun Error occurs)
  3583.  3    Parity Error (PE flag on when a parity error occurs)
  3584.  2    TxEmpty
  3585.  1    RxRDY (causing IRQ 3 level)
  3586.  0    TxRDY (has not the same meaning as 8251A TxRDY output pin).
  3587.           THIS one is NOT conditioned by CTS and TxEnable (causing IRQ 4 level)
  3588. SeeAlso: #P192
  3589. ----------P03AB------------------------------
  3590. PORT 03AB - GI1904 Scanner Interface Adapter
  3591. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh
  3592. Range:    PORT 036Bh, PORT 03EBh
  3593. ----------P03B003BF--------------------------
  3594. PORT 03B0-03BF - MDA  (Monochrome Display Adapter based on 6845)
  3595.  
  3596. 03B0  -W  same as 03B4
  3597. 03B1  RW  same as 03B5
  3598. 03B2  -W  same as 03B4
  3599. 03B3  RW  same as 03B5
  3600. 03B4  -W  MDA CRT index register     (MDA/mono EGA/mono VGA)
  3601.         selects which register (0-11h) is to be accessed through 03B5h
  3602.         Note: this port is read/write on some VGAs
  3603.         bit7-6: (VGA) reserved (0)
  3604.         bit5  : (VGA) reserved for testing (0)
  3605.         bit4-0: selects which register is to be accessed through 03B5h
  3606. 03B5  RW  MDA CRT data register     (MDA/mono EGA/mono VGA)
  3607.         selected by port 3B4. registers 0C-0F may be read
  3608.         Color adapters are at 3D4/3D5, but are mentioned here for
  3609.           better overview.
  3610.         There are differences in names and some bits functionality
  3611.           on EGA, VGA in their native modes, but clones in their
  3612.           emulation modes emulate the original 6845 at bit level. The
  3613.           default values are for MDA, HGC, CGA only, if not otherwise
  3614.           mentioned.
  3615. 03B6  -W  same as 03B4h
  3616. 03B7  RW  same as 03B5h
  3617. 03B8  rW  MDA mode control register (see #P109)
  3618. 03B9  ?W  reserved for color select register on color adapter
  3619. 03B9  -W  MDA/HGC: set lightpen flipflop (value written is ignored)
  3620.         cannot be found on native mono EGA, mono VGA (without
  3621.           translation ROM)
  3622. 03BA  R-  CRT status register (see #P110)
  3623.         (EGA/VGA) input status 1 register
  3624. 03BA  -W  (mono EGA/mono VGA) feature control register
  3625.         (see PORT 03DAh-W for details; VGA, see PORT 03CAh-R)
  3626. 03BB  -W  light pen strobe reset (on any value)
  3627.  
  3628. (Table P108)
  3629. Values for mono video adapter CRT data register index:
  3630.                   defaults:    MDA/HGC    HGC   CGA   CGA      CGA
  3631.                          text  graph text1 text2 graph
  3632.                            7  720x348  1     3      5,6
  3633.  00h    horizontal total              61h    35h   38h   71h      38h
  3634.           ET4000: in VGA mode scanlines-5
  3635.               in EGA mode scanlines-2
  3636.  01h    horizontal displayed              50h    2Dh   28h   50h      28h
  3637.           horizontal display end-1 (EGA,VGA)
  3638.  02h    horizontal sync position          52h    2Eh   2Dh 5Ah/5Ch 2Dh
  3639.  03h    sync pulse width              0Fh 07h/0Fh 0Ah   0Ah      0Ah
  3640.            bit7-4 vsync, bit3-0 hsync
  3641.           end horizontal blanking (EGA,VGA)
  3642.            VGA    : bit7=1      : enable read access to regs
  3643.                     10h, 11h (otherwise VGA clones
  3644.                     may show lightpen values)
  3645.            EGA,VGA: bit6-5=0-3: display enable skew control
  3646.             bit4-0      : end blanking
  3647.  04h    vertical total (vcycle-1)          19h    5Bh   1Fh   1Fh      7Fh
  3648.            bit7 only used on MCGA
  3649.           start horizontal retrace (EGA, VGA)
  3650.           Genoa SuperEGA only???:
  3651.            bit7  : start at odd memory address
  3652.            bit6-5: horizontal sync skew
  3653.            bit4-0: start retrace+ retrace width
  3654.  05h    vertical total adjust              06h    02h   06h   06h      06h
  3655.            bit7-5 only used on MCGA
  3656.           end horizontal retrace (EGA, VGA)
  3657.            bit7  : (EGA) start at odd memory address
  3658.                (VGA) bit5 of end horizontal retrace
  3659.            bit6-5: horizontal sync skew
  3660.            bit4-0: end horizontal retrace
  3661.  06h    vertical displayed              19h    57h   19h   19h      64h
  3662.            bit7 only used on MCGA
  3663.           (EGA) vertical total-1
  3664.           (VGA) vertical total-2
  3665.  07h    vertical sync pulse width-1          19h    57h   1Ch   1Ch 70h/66h
  3666.            bit7  only used on MCGA
  3667.           controller overflow (EGA,VGA)
  3668.            bit7: (VGA) bit9 of start vertical retrace (10h)
  3669.            bit6: (VGA) bit9 of vertical display end (12h)
  3670.            bit5: (VGA) bit9 of vertical total (06h)
  3671.              (EGA) bit5 of cursor-position (0Ah)
  3672.            bit4: bit8 of line compare (18h)
  3673.            bit3: bit8 of start vertical blanking (15h)
  3674.            bit2: bit8 of vertical retrace start (10h)
  3675.            bit1: bit8 of vertical display end (12h)
  3676.            bit0: bit8 of vertical total (06h)
  3677.  08h    interlace mode (not MCGA)          02h    02h   02h   02h      02h
  3678.            bit7-2: reserved
  3679.            bit1  : delay
  3680.            bit0=1: interlace on
  3681.           preset row scan (EGA, VGA)
  3682.            bit7  : reserved
  3683.            bit6-5: (VGA) byte panning
  3684.            bit4-0: start row scan after retrace
  3685.  09h    maximum scan lines              0Dh    03h   07h   07h      01h
  3686.            bit7  : (VGA) double scan active
  3687.            bit6  : (VGA) bit9 of line compare (18h)
  3688.            bit5  : (VGA) bit9 of start vertical blanking (15h)
  3689.            bit4-0: maximum scan line 00..31 (height-1)
  3690.  0Ah    cursor start                  0Bh    00h   06h   06h 06h/00h
  3691.            bit7  : reserved
  3692.            bit6-5: original 6845: cursor on/off, blink interval
  3693.                (not on all adapters, as original MDA, CGA have
  3694.                extra circuitrity to avoid this!!)
  3695.            bit6-5: native EGA: not used
  3696.            bit6  : (VGA) not used
  3697.            bit5=0: (VGA) cursor on
  3698.            bit4-0: first cursor scanline
  3699.  0Bh    cursor end                  0Ch    00h   07h   07h 07h/00h
  3700.            bit7  : reserved
  3701.            bit6-5: EGA, VGA: cursor skew control
  3702.            bit4-0: end cursor row
  3703.  0Ch RW    start address high              00h    00h   00h   00h      00h
  3704.            bit7-6 not used by original 6845 (MDA,HGC,CGA)
  3705.  0Dh RW    start address low              00h    00h   00h   00h      00h
  3706.  0Eh RW    cursor location high              00h    00h   00h   00h      00h
  3707.            bit7-4 not used by original 6845 (MDA,HGC,CGA)
  3708.            bit5-4 reserved on MCGA
  3709.  0Fh RW cursor location low              00h    00h   00h   00h      00h
  3710. ---for 10h-14h MCGA registers see at 3D4h/3D5h---
  3711.  10h R-    light pen high (MDA/CGA/EGA only, some HGC, few VGA
  3712.            clones in emulation, not with ET4000)
  3713.  10h R-    native VGA with bit7=1 in end horizontal blanking (03h) and ET4000:
  3714.            start vertical retrace
  3715.  10h R- MCGA at 3D5h only: mode control status register
  3716.  10h -W EGA, VGA: start vertical retrace
  3717.  10h -W MCGA at 3D5h only: mode control register
  3718.  11h R- light pen low (MDA/CGA/EGA only, some HGC, few VGA
  3719.            clones in emulation, not with ET4000)
  3720.  11h R- native VGA with bit7=1 in end horizontal blanking (03h):
  3721.            end vertical retrace
  3722.  11h -W EGA, VGA: end vertical retrace
  3723.            bit7  : VGA: protection bit
  3724.                 =0 enable write access to 00h-07h
  3725.                 =1 read only regs 00h-07h with the exception
  3726.                    of bit4 in 07h. ET4000: protect 35h also.
  3727.            bit6  : VGA: =0 three, =1 five refreshcycles/line
  3728.                ET4000: reserved
  3729.            bit5=0: (MCGA also) enable vertical interrupt
  3730.            bit4=0: (MCGA also) clear vertical interrupt
  3731.            =1:           no effect
  3732.            bit3-0: (MCGA also) vertical retrace end
  3733.  11h RW MCGA at 3D5h only: interrupt control register
  3734.  12h    EGA, VGA: vertical display end register
  3735.  12h RW MCGA at 3D5h only: character generator/sync pol. register
  3736.  12h R- MCGA at 3D5h only: display sense register
  3737.            (with bit7=1 in 11h only)
  3738.  13h    EGA, VGA: row offset register
  3739.            logical screen line width in
  3740.         byte mode : bytes/(line/2)
  3741.         word mode : bytes/(line/4)
  3742.         dword mode: bytes/(line/8)
  3743.  13h -W MCGA at 3D5h only: character font pointer register
  3744.  14h    EGA, VGA: underline location register
  3745.            bit7=0: reserved
  3746.            bit6  : VGA: 0=word-mode, 1=dword-mode (see 17h, bit6)
  3747.            bit5  : VGA: 0=standard address counter clock
  3748.                 1=address counter clock/4 (see 17h, bit3)
  3749.            bit4-0: horizontal underline row scan
  3750.  14h -W MCGA at 3D5h only: number of characters to load during
  3751.            vretrace period
  3752.  14h -W HGC+,InColor: xMode register
  3753.  15h    EGA, VGA: start vertical blanking-1
  3754.  15h -W HGC+,InColor: underscore register
  3755.  16h    EGA, VGA: end vertical blanking register
  3756.            bit7-5 : EGA: reserved, but used on original EGA???
  3757.            bit4-0 : end vertical blanking
  3758.  16h -W HGC+,InColor: overstrike register
  3759.  17h    EGA, VGA: mode control register (see #P111)
  3760.  17h -W    InColor: exception register
  3761.  18h    EGA, VGA: line compare register
  3762.  18h -W    InColor: plane mask register
  3763.  19h    Genoa SuperEGA only: double scan control
  3764.            at 3B5h only in MDA, HGC emulation, but at 3D5h even in
  3765.            mono EGA modes.
  3766.            bit7-5 : reserved
  3767.            bit4   : HR/VR width adjust flag for double scan mode
  3768.            bit3-1 : 1=test, 0=normal
  3769.            bit0   : double scan enable
  3770.  19h -W    InColor: read/write control register
  3771.  1Ah -W    InColor: read/write color register
  3772.  1Bh -W    InColor: Latch Protect register
  3773.  1Bh    ET3000 only: x-zoom start register
  3774.           The existence of this register is often used to decide
  3775.            between ET3000 and ET4000, as the ET4000 does not offer
  3776.            hardware-zoom features.
  3777.  1Ch RW    InColor: palette register
  3778.  1Ch    ET3000 only: x-zoom end register
  3779.  1Dh    ET3000 only: y-zoom start register low
  3780.  1Eh    ET3000 only: y-zoom end register low
  3781.  1Fh    ET3000 only: y-zoom start & end high register
  3782.  20h    ET3000 only: zoom start address register low
  3783.  21h    ET3000 only: zoom start address register medium
  3784.  23h    ET3000 only: extended start address (see 33h)
  3785.  24h    ET3000 only: compatibility register (see 34h)
  3786.  25h    ET3000 only: overflow high register (see 35h, 07h)
  3787.  32h    ET4000: RAS/CAS configuration ('key' protected) (see #P112)
  3788.  33h    ET4000: extended start address
  3789.           This register is often used to decide between ET4000
  3790.           and ET3000, when bit3-0 can be reread after write.
  3791.            bit7-4 : reserved
  3792.            bit3-2 : cursor address bit 17-16
  3793.            bit1-0 : linear start address bits 17-16
  3794.  34h    ET4000: 6845 compatibility control register ('key' protected)
  3795.       (see #P113)
  3796.  35h    ET4000: overflow high register (protected by 11h, bit7) (see #P114)
  3797.  36h    ET4000: video system configuration 1 ('key' protected) (see #P115)
  3798.  37h    ET4000: video system configuration 2 ('key' protected) (see #P116)
  3799. Notes:    MDA, HGC, CGA: 6845 registers 00h-0Dh are write only, 0Eh, 0Fh
  3800.            are r/w, and 10h-11h are read only.
  3801.            The alternative initial defaults may be used
  3802.            sometimes on modern adapters.
  3803.     HGC+(RamFont): as with HGC, but 3 (unknown) registers more for
  3804.            font control
  3805.     emulations   : more registers may be r/w, but most often it's
  3806.            the same as with native 6845.
  3807.     MCGA (CGA+)  : Though this is a mixture of CGA and VGA, most
  3808.            registers are same as with CGA, but with some
  3809.            enhancements and incompatibilities to EGA, VGA.
  3810.     native EGA   : registers 00h-0Bh are write only, 0Ch-0Fh are
  3811.            r/w, 10h-11h are read/write, 12h-18h are write
  3812.            only. More regs may be r/w on enhanced clones.
  3813.     GenoaSuperEGA: adapter with chips SEQCRT GN006001 and GRAT
  3814.            GN006002, e.g. c't Super-EGA adapter. Is EGA
  3815.            clone with up to 800x600 and full 6845 emulation.
  3816.     native VGA   : all registers 00-18h are r/w, but 00h-07h are
  3817.            write-locked if bit7 in 11h is set.
  3818.     ET4000         : same as VGA, but with additional r/w registers
  3819.            32h-37h, protected by 'key' except 33h, 35h
  3820.            (see 3BFh for details). 35h is protected by
  3821.            bit7 in 11h. The 'key' must be issued at least
  3822.            after each power on or synchronous reset.
  3823. SeeAlso: #P109,#P110
  3824.  
  3825. Bitfields for mono video adapter mode control register:
  3826. Bit(s)    Description    (Table P109)
  3827.  7 not used by MDA, page number on HGC
  3828.  6    not used
  3829.  6  R-O    (mono ET4000 only) report status of bit 1 (enable 2nd page) of
  3830.       Hercules compatibility register (PORT 03BFh)
  3831.  5    enable blink (0 = intense background, 1 = blink)
  3832.  4    not used
  3833.  3    video enable
  3834.  2    not used
  3835.  1    (MDA) not used
  3836.     (HGC) graphics enable
  3837.     the 6845 has to be reprogrammed completely, if this bit is
  3838.       changed, otherwise the TTL-monitor may be damaged by wrong
  3839.       sync impulses!
  3840.  0    high resolution mode (always set on MDA)
  3841. ---mono ET4000 only, W-O ---
  3842.  7-0    =A0h: second part of 'key', see Hercules compatibility register
  3843.       (PORT 03BFh) for details
  3844. Note:    this port might be completely or partially readable on very few MDA,
  3845.       HGC clones or emulations (e.g. Genoa SuperEGA), but not with the
  3846.       majority of original and clone chips.     It cannot be found on
  3847.       native mono EGA, mono VGA, but on most clones, where it is usually
  3848.       R/W.
  3849. SeeAlso: #P108,#P110
  3850.  
  3851. Bitfields for mono video adapter CRT status register:
  3852. Bit(s)    Description    (Table P110)
  3853.  7    HGC: vertical sync pulse in progress
  3854.  6-4    adapter identification
  3855.     (MSD says) if bit 7 changes within 8000h reads then
  3856.         =000 adapter is Hercules or compatible
  3857.         =001 adapter is Hercules+
  3858.         =101 adapter is Hercules InColor
  3859.         else: adapter is unknown
  3860.  6-4    =111 on MDA and some HGC clones
  3861.  5-4    (mono EGA, mono ET4000) diagnose video display feedback
  3862.     select from color plane enable
  3863.  3    (MDA,HGC) pixel stream (0=currently black, 1=currently white)
  3864.     (mono EGA, mono VGA) vertical retrace in progress
  3865.  2-1    (MDA) reserved
  3866.  2    (HGC, mono EGA) lightpen flipflop set
  3867.     (mono ET4000) reserved (0)
  3868.  1    (HGC) lightpen input stream (if set, current value to get from
  3869.       PORT 03B5h/10h-11h)
  3870.     (mono ET4000) reserved (0)
  3871.  0    horizontal drive enabled
  3872. SeeAlso: #P108,#P109
  3873.  
  3874. Bitfields for EGA,VGA mode control register:
  3875. Bit(s)    Description    (Table P111)
  3876.  7    0=CRTC reset and stop, 1=resume reset
  3877.  6    0=word-mode, 1=byte-mode (VGA: see 14h, bit6)
  3878.  5    0=14bit, 1=16bit address wrap
  3879.  4    (native VGA only) reserved (0)
  3880.  4    (EGA and most VGA clones) output control
  3881.     0: video driver active
  3882.     1: video driver not active
  3883.  3    linear address counter clock (0 = standard, 1 = clock/2)
  3884.     (VGA: see register 14h, bit 5)
  3885.  2    horizontal retrace clock (0 = standard, 1 = clock/2)
  3886.  1    row scan counter
  3887.     0: address bit 14 = scan bit 1
  3888.     1: address bit 14 not altered
  3889.  0    6845 compatibility mode
  3890.     0: address bit 13 = scan bit 0 (as with 6845)
  3891.     1: address bit 13 not altered
  3892. SeeAlso: #P108
  3893.  
  3894. Bitfields for ET4000 RAS/CAS configuration register:
  3895. Bit(s)    Description    (Table P112)
  3896.  7    static column memory
  3897.     ET4000/W32i: interleave mode
  3898.  6    RAL RAS&CAS column setup time
  3899.  5    RCD RAS & CAS time
  3900.  4-3    RSP, RAS pre-charge time
  3901.  2    CPS, CAS pre-charge time
  3902.  1-0    CSW, CAS low pulse width
  3903. SeeAlso: #P108,#P113
  3904.  
  3905. Bitfields for ET4000 compatibility control register:
  3906. Bit(s)    Description    (Table P113)
  3907.  7    6845 compatibility enabled
  3908.  6    ENBA enable double scan/underline in AT&T mode
  3909.  5    ENXL enable translation ROM on writing
  3910.  4    ENXR enable translation ROM on reading
  3911.  3    ENVS VSE register port address
  3912.  2    TRIS tristate ET4000 output pins
  3913.  1    CS2 MCLCK clock select 2
  3914.  0    EMCK enable translation of CS0 bit
  3915. SeeAlso: #P108,#P112,#P114
  3916.  
  3917. Bitfields for ET4000 overflow high register:
  3918. Bit(s)    Description    (Table P114)
  3919.  7    vertical interlace mode
  3920.  6    alternate RMW control
  3921.  5    external sync reset (gen-lock) the line/chr counter
  3922.  4    line compare bit10
  3923.  3    vertical sync start bit10
  3924.  2    vertical display end bit10
  3925.  1    vertical total bit10
  3926.  0    vertical blank start bit10
  3927. SeeAlso: #P108,#P113,#P115
  3928.  
  3929. Bitfields for ET4000 video system configuration 1 register:
  3930. Bit(s)    Description    (Table P115)
  3931.  7    enable 16bit I/O read/write
  3932.  6    enable 16bit display memory read/write
  3933.  5    addressing mode (0=IBM, 1=TLI)
  3934.  4    0=segment / 1=linear system configuration
  3935.  3    font width control (1=up to 16bit, 0=8bit)
  3936.  2-0    refresh count per line-1
  3937. SeeAlso: #P108,#P114,#P116
  3938.  
  3939. Bitfields for ET4000 video system configuration 2 register:
  3940. Bit(s)    Description    (Table P116)
  3941.  7    DRAM display memory type (1=VRAM, 0=DRAM)
  3942.  6    test (1=TLI interal test mode)
  3943.  5    priority threshold control (0=more mem BW)
  3944.  4    disable block read-ahead
  3945.  3    display memory data depth
  3946.  2    bus read data latch control
  3947.  1-0    display memory data bus width
  3948. SeeAlso: #P108,#P115
  3949. ----------P03BC03BF--------------------------
  3950. PORT 03BC-03BF - PARALLEL PRINTER PORT (MDA's LPT1)
  3951. Range:    PORT 0278h, PORT 0378h, or PORT 03BCh
  3952.  
  3953. 03BC   W  data port
  3954. 03BC  R      bidirectional port: input from connector
  3955.       unidirectional port: last value written to port
  3956. 03BD  RW  status port (see #P117)
  3957. 03BE  RW  control port (see #P118)
  3958.  
  3959. Bitfields for parallel interface status port:
  3960. Bit(s)    Description    (Table P117)
  3961.  7    busy
  3962.  6    NOT acknowledge (approx. 5us low pulse)
  3963.  5    out of paper
  3964.  4    printer is selected
  3965.  3    *no* error
  3966.  2    IRQ has *not* occurred
  3967.     (PS/2) printer returned -ACK
  3968.  1-0    reserved
  3969. SeeAlso: #P118
  3970.  
  3971. Bitfields for parallel interface control port:
  3972. Bit(s)    Description    (Table P118)
  3973.  7-5    reserved
  3974.  7    (see PORT 037Bh bit 7)
  3975.  5    enable bidirectional port
  3976.     (PS/2 also requires enabling via port 0102h)
  3977.  4    enable IRQ (via -ACK)
  3978.  3    select printer (SLCT IN line)
  3979.  2    =0 initialize printer (-RESET line)
  3980.  1    automatic line feed
  3981.  0    strobe (must be set for minimum of 5 microseconds)
  3982. SeeAlso: #P117
  3983. ----------P03BF------------------------------
  3984. PORT 03BF - Hercules configuration switch register
  3985. Note:    can also be found on EGA and VGA clones in Hercules emulation
  3986.  
  3987. 03BF   W  configuration switch register (see #P119)
  3988. 03BF   W  (ET4000) Hercules compatibility register (see #P120)
  3989. 03BF  RW  (Genoa SuperEGA) miscellaneous register
  3990.     Note: only available in MDA, HGC, and CGA emulation; should be
  3991.       compatible with Hercules configuration register, but may contain
  3992.       additional features
  3993.  
  3994. Bitfields for Hercules configuration switch register:
  3995. Bit(s)    Description    (Table P119)
  3996.  7-2    reserved
  3997.  1    =0  disables upper 32K of graphics mode buffer
  3998.     =1  enables upper 32K of graphics mode buffer
  3999.  0    =0  prevents graphics mode
  4000.     =1  allows graphics mode
  4001. SeeAlso: #P120
  4002.  
  4003. Bitfields for ET4000 compatibility register:
  4004. Bit(s)    Description    (Table P120)
  4005.  1    =0 disables upper 32K of graphics mode buffer
  4006.     =1 enables upper 32K of graphics mode buffer
  4007.  0    reserved (not needed for HGC graphics)
  4008.  7-0    =03h: first part of 'key' for access to some extra
  4009.          ET4000 regs. To issue the 'key', the following
  4010.          code must be executed:
  4011.           MOV DX, 3BFh
  4012.           MOV AL, 3
  4013.           OUT DX, AL
  4014.           MOV DX, 3D8h  (3B8h in mono mode)
  4015.           MOV AL, 0A0h
  4016.           OUT DX, AL
  4017. SeeAlso: #P119 
  4018. ----------P03C003C7--------------------------
  4019. PORT 03C0-03C7 - Sunshine EW-901, EW-901A, EW-904, EW-904A
  4020.         EPROM writer card for EPROMs up to 27512
  4021. 03C0-03C3    adresses of the 8255 on the EW-90x
  4022. ----------P03C003CF--------------------------
  4023. PORT 03C0-03CF - EGA  (1st Enhanced Graphics Adapter)    alternate at 02C0
  4024.  
  4025. 03C0  rW  EGA VGA ATC index/data register
  4026.          Every write access to this register will toggle an internal
  4027.          index/data selection flipflop, so that consecutive writes to
  4028.          index & data is possible through this port. To get a defined
  4029.          start condition, each read access to the input status register
  4030.          #1 (3BAh in mono / 3DAh in color) resets the flipflop to load
  4031.          index. If values are changed during the vertical retrace
  4032.          period only no flicker will occur.
  4033.  
  4034.         index register (flipflop reset to 'index'): (default 20h)
  4035.          bit7-6: reserved
  4036.          bit5  : 0=CPU access (screen dark),
  4037.              1=video access to registers
  4038.          bit4-0: index in ATC (0..31)
  4039.  
  4040.         indexed registers in ATC (flipflop set to 'data'): (see #P121)
  4041. 03C1  R      VGA    ATC index/data read register
  4042. 03C2  R      EGA VGA input status 0 register
  4043.              (Genoa SuperEGA in all emulation modes)
  4044.              bit6-5 are 'key' protected on ET4000.
  4045.              bit7  : CRT interrupt occured
  4046.                  EGA: 0=vertical retrace in progress, 1=display
  4047.              bit6  : EGA and ET4000: feature control 1 (pin17)
  4048.              bit5  : EGA and ET4000: feature control 0 (pin19)
  4049.              bit4  : DIP switch sense
  4050.                 (0=closed, 1=open/switches readable)
  4051.              bit3-0: reserved
  4052. 03C2   W  EGA VGA miscellaneous output register (see #P132)
  4053. 03C3  RW  VGA    video subsystem enable (see also port 46E8h)
  4054.         for IBM, motherboard VGA only
  4055.              bit7-4=0: reserved
  4056.              bit3     : select video subsystem (address 46E8h)
  4057.              bit2-1     : reserved
  4058.              bit0     : select video subsystem (address 03C3)
  4059. 03C4   W  EGA    TS index register
  4060. 03C4  RW  VGA    sequencer index register
  4061.              bit7-3     : reserved
  4062.              bit2-0     : current TS index
  4063. 03C5   W  EGA    TS data register
  4064. 03C5  RW  VGA    sequencer data register (see #P127)
  4065. 03C6  RW  (VGA, MCGA) PEL mask register (default FFh)
  4066.          VGA:    AND mask for color-register address.
  4067.          MCGA:    Never change from the default FFh.
  4068. 03C6  RW  HiColor ET4000 (Sierra RAMDACs e.g. SC11486, SC11481, SC11488):
  4069.          Enable HiColor feature: beside other assignments,
  4070.          consequtive read 3C6h 4 times and write magic value 80h to it.
  4071. 03C7   W  (VGA,MCGA,CEG-VGA) PEL address register (read mode)
  4072.          Sets DAC in read mode and assign start of color register
  4073.          index (0..255) for following read accesses to 3C9h.
  4074.          Don't write to 3C9h while in read mode. Next access to
  4075.          03C8h will stop pending mode immediatly.
  4076. 03C7   W  (CEG-Color VGA w/ Edun Labs RAMDACs)
  4077.          Enable and set Countinous Edge Graphics Mode:
  4078.          Consecutive write the following three key sequences in read
  4079.          mode (!) to 3C9h register DEh : 'CEG', 'EDS', 'UNx' (x see
  4080.          below). Current CEG mode can be read from palette register
  4081.          BFh 'blue', write access to that register will disable CEG
  4082.          features.
  4083.          In CEG modes by combining old with new colors and dynamically
  4084.          changing palette values, the effective colors displayable
  4085.          are enhanced dramatically (in EDP modes up to virtually 32bit
  4086.          truecolor) on standard 16/256 color VGA. Also, effective
  4087.          resolution enhancement takes effect by anti-aliasing.
  4088.          Neccessary EDP escape sequences should be moved to image
  4089.          border or single colored areas, if possible.
  4090.  
  4091.          REP-mode: if pixel are doubled in current video mode
  4092.          EDP-mode: pseudo-truecolor with Edsun dynamic palette
  4093.          (see #P137,#P138)
  4094.  
  4095.          Palette-color-register single-byte-format (each 3 times):
  4096.           Mode A:          Mode C:
  4097.            bit7-4: mix code       bit3     : 0=color, 1=code
  4098.            bit3-0: color code       bit2-0: color / mix code
  4099.           Mode B:          Mode D:
  4100.            bit7-5: mix code       bit7-0: see mix code table
  4101.            bit4     : 0=new, 1=old      Non-CEG modes:
  4102.            bit3-0: color code       bit7-0: as usual
  4103.  
  4104.          In EDP modes, video-memory-palette-changing escape-sequences:
  4105.           Mode A:     Mode B:      Mode C:     Mode D:
  4106.            7/escape    7/escape       7/escape    0BFh
  4107.            red           red       red7-4      red
  4108.            green       green       red3-0      green
  4109.            blue           blue       green7-4    blue
  4110.            address     address       green3-0    address
  4111.                        blue7-4
  4112.                        blue3-0
  4113.                        address
  4114. 03C7  R      VGA    DAC state register
  4115.         bit7-2 reserved
  4116.         bit1-0: 00b write palette cycle (write mode)
  4117.             01h reserved
  4118.             10b reserved
  4119.             11b read palette cycle (read mode)
  4120. 03C8  RW  (VGA,MCGA) PEL address register (write mode)
  4121.          Sets DAC in write mode and assign start of color register
  4122.          index (0..255) for following write accesses to 3C9h.
  4123.          Don't read from 3C9h while in write mode. Next access to
  4124.          03C8h will stop pending mode immediatly.
  4125. 03C8  RW  (Genoa SuperEGA) SuperEGA control register (all emulation modes)
  4126.           bit7-2: reserved
  4127.           bit1    : 0=EGA mode, 1=backward compatibility mode
  4128.           bit0    : not used
  4129. 03C9  RW  (VGA,MCGA) PEL data register
  4130.          Three consequtive reads (in read mode) or writes (in write
  4131.          mode) in the order: red, green, blue. The internal DAC index
  4132.          is incremented each 3rd access.
  4133.           bit7-6: HiColor VGA DACs only: color-value bit7-6
  4134.           bit5-0:             color-value bit5-0
  4135. 03CA   W  EGA    graphics 2 position register
  4136. 03CA  R      VGA    feature control register (see PORT 03BAh,PORT 03DAh-W)
  4137. 03CB  RW  (ET4000/W32) GDC segment select register 2 ('key' protected?)
  4138.         The existence of this r/w register 0..255 is often
  4139.          used to decide between ET4000 and ET4000/W32.
  4140.          bit7-6: reserved, but existent
  4141.          bit5-4: bits 5-4 of read segment pointer
  4142.          bit3-2: reserved, but existent
  4143.          bit1-0: bits 5-4 of write segment pointer
  4144. 03CC   W  EGA    graphics 1 position register
  4145. 03CC  R      VGA    miscellaneous output register (see PORT 03C2h-W)
  4146. 03CD  RW  (ET3000, ET4000, ET4000/W32) GDC segment select ('key' protected)
  4147.         The existence of this r/w register is often used as
  4148.         detection of ET3000, ET4000 and ET4000/W32 chips.
  4149.          bit7-4: read segment pointer for mapping to A0000h
  4150.          bit3-0: write segment pointer for mapping to A0000h
  4151. 03CE   W  EGA    GDC index register
  4152. 03CE  RW  VGA    graphics address register / GDC index
  4153.               bit7-4: reserved
  4154.               bit3-0: index
  4155. 03CF   W  EGA    GDC data register
  4156. 03CF  RW  VGA    other graphics register (see #P133)
  4157.  
  4158. (Table P121)
  4159. Values for EGA/VGA indexed registers in ATC:
  4160.  00h-0Fh 16 palette registers (see #P122)
  4161.  10h    mode control register (see #P123)
  4162.  11h    (EGA) overscan color register (see #P124) (default: 00h)
  4163.  11h    (VGA) overscan color register (see #P125) (default: 00h)
  4164.  12h    color enable register (see #P126)
  4165.  13h    horizontal pixel panning register
  4166.     bit7-4: reserved
  4167.     bit3-0: horizontal pixel panning
  4168.  14h    (VGA) color select register (default: 00h)
  4169.     bit7-4: reserved
  4170.     bit3  : s-color 7
  4171.     bit2  : s-color 6
  4172.     bit1  : s-color 5 (only with 16 pages á 16 regs)
  4173.     bit0  : s-color 4 (only with 16 pages á 16 regs)
  4174.  16h    ET3000, ET4000 only: ATC miscellanenous
  4175.     (at least on ET4000 'key' protected)
  4176.     This register is also supported by ET3000, but the
  4177.     description is proved for ET4000 only.
  4178.     bit7  : bypass the internal palette
  4179.         (e.g. for HiColor modes with Sierra RAMDACs)
  4180.     bit6  : reserved
  4181.     bit5-4: select high resolution / color mode
  4182.     bit3-0: reserved
  4183. SeeAlso: #P127,#P133
  4184.  
  4185. Bitfields for EGA/VGA indexed ATC palette register:
  4186. Bit(s)    Description    (Table P122)
  4187.  7-6    reserved
  4188.  5    secondary red video
  4189.  4    secondary green/intensity video
  4190.  3    secondary blue/mono video
  4191.  2    primary red video
  4192.  1    primary green video
  4193.  0    primary blue video
  4194. SeeAlso: #P121
  4195.  
  4196. Bitfields for EGA/VGA ATC mode control register:
  4197. Bit(s)    Description    (Table P123)
  4198.  7    (VGA) SB/SG select (0=4 pages of 64 regs, 1=16 pages of 16 regs)
  4199.  6    (VGA) PELCLK/2 (0=4bit color, 1=8bit color)
  4200.  5    (VGA) enable pixel panning (0=all, 1=up to line compare register value)
  4201.  4    reserved
  4202.  3    background intensity (0=16 colors, 1=blink)
  4203.  2    line graphics enable (0=background, 1=line 8=9)
  4204.  1    1=mono, 0=color select
  4205.  0    1=graphics, 0=text select
  4206. SeeAlso: #P121
  4207.  
  4208. Bitfields for EGA overscan color register:
  4209. Bit(s)    Description    (Table P124)
  4210.  7-6    reserved
  4211.  5    secondary red (SR)
  4212.  4    secondary green (SR) / intensity
  4213.  3    secondary blue (SB)
  4214.  2    primary red (PR)
  4215.  1    primary green (PG)
  4216.  0    primary blue (PB)
  4217. SeeAlso: #P121,#P125
  4218.  
  4219. Bitfields for VGA overscan color register:
  4220. Bit(s)    Description    (Table P125)
  4221.  7    secondary intensity border color (SI)
  4222.  6    secondary red (SR)
  4223.  5    secondary green (SG)
  4224.  4    secondary blue (SB)
  4225.  3    intensity border color (PI)
  4226.  2    primary red (PR)
  4227.  1    primary green (PG)
  4228.  0    primary blue (PB)
  4229. SeeAlso: #P121,#P124
  4230.  
  4231. Bitfields for EGA/VGA color enable register:
  4232. Bit(s)    Description    (Table P126)
  4233.  7-6    reserved
  4234.  5-4    diagnose / video status select
  4235.     EGA:        VGA, ET4000:
  4236.     00b = PR/PB       PR/PB
  4237.     01b = SB/PG       SG/SB
  4238.     10b = SR/SG       PI/PG
  4239.     11b = reserved       SI/SR
  4240.  3    enable plane 3
  4241.  2    enable plane 2
  4242.  1    enable plane 1
  4243.  0    enable plane 0
  4244. SeeAlso: #P121 
  4245.  
  4246. (Table P127)
  4247. Values for EGA/VGA indexed TS (sequencer) registers:
  4248.  00h    reset register
  4249.     bit7-2 : reserved
  4250.     bit1 =0: synchronous reset (EGA/VGA)
  4251.     bit0 =0: asynchronous reset (EGA, ET4000)
  4252.          synchronous reset, also (VGA)
  4253.  01h    clocking mode register / TS mode (see #P128)
  4254.  02h    map mask register (see #P129)
  4255.  03h    character map select register / font select (see #P130)
  4256.  04h    memory mode register
  4257.     bit7-4 : reserved
  4258.     bit3 =1: (VGA) enable chain 4 linear graphics mode
  4259.     bit2    : 0=odd/even mode, 1=sequencial mode
  4260.     bit1 =1: extended memory (0=64KB, 1=more)
  4261.     bit0    : (EGA) 1=textmode, 0=graphics mode
  4262.  06h    ET3000 only: Zoom control register
  4263.  06h    ET4000 only: TS state control (protected by 'key')
  4264.     bit7-3 : reserved
  4265.     bit2-1 : timing sequencer state bit2-1
  4266.            (bit0 is bit0 TS mode register)
  4267.            00 0b=  9 dots
  4268.            00 1b=  8 dots
  4269.            01 0b= 10      (10-16 are ET4000 only)
  4270.            01 1b= 11
  4271.            10 0b= 12
  4272.            11 1b= 16
  4273.     bit0    : reserved
  4274.  07h    ET3000/ET4000 only: TS auxiliary mode (see #P131)
  4275.  
  4276. Bitfields for EGA/VGA sequencer clocking mode register:
  4277. Bit(s)    Description    (Table P128)
  4278.  7-6    reserved
  4279.  5    (VGA) =1: screen refresh off
  4280.  4    (VGA) shift load (0=4x8, 1=1x32)
  4281.  3    dot clock (0=normal, 1=clock/2)
  4282.  2    serial shift video load (0=4x8, 1=2x16)
  4283.  1    (EGA) CRTC bandwidth (0=4/5, 1=2/5)
  4284.  0    dot clocks (0=9, 1=8) (ET4000: see 06h)
  4285. SeeAlso: #P127
  4286.  
  4287. Bitfields for EGA/VGA sequencer map mask register:
  4288. Bit(s)    Description    (Table P129)
  4289.  7-4    reserved
  4290.  4    Genoa SuperEGA only: plane4 ???
  4291.  3    write enable display memory plane 3
  4292.  2    write enable display memory plane 2
  4293.  1    write enable display memory plane 1
  4294.  0    write enable display memory plane 0
  4295. SeeAlso: #P127
  4296.  
  4297. Bitfields for EGA/VGA sequencer character map select register:
  4298. Bit(s)    Description    (Table P130)
  4299.  7-6    reserved
  4300.  5    (VGA) bit3 for 2nd text-font
  4301.  4    (VGA) bit3 for 1st text-font
  4302.  3-2    2nd text-font (attr bit3=1)
  4303.  1-0    1st text-font (attr bit3=0)
  4304.     offset in font memory (4-7: VGA only)
  4305.        0 00b =  0KB
  4306.        0 01b = 16KB
  4307.        0 10b = 32KB
  4308.        0 11b = 48KB
  4309.        1 00b =  8KB
  4310.        1 01b = 24KB
  4311.        1 10b = 40KB
  4312.        1 11b = 56KB
  4313. SeeAlso: #P127
  4314.  
  4315. Bitfields for ET3000/ET4000 sequencer auxiliary mode:
  4316. Bit(s)    Description    (Table P131)
  4317.  7    compatibility mode (1=VGA, 0=EGA)
  4318.  6    select MCLK/2 (with bit0=0)
  4319.  5    BIOS ROM address map 2
  4320.  4    reserved
  4321.  3    BIOS ROM address map 1
  4322.  2    reserved (1)
  4323.  1    select SCLK input from MCLK
  4324.  0    select MCLK/4 (with bit6=1)
  4325.  5+3    ROM address
  4326.     00 C0000-C3FFF
  4327.     01 disabled
  4328.     10 C0000-C5FFF, C6800-C7FFF
  4329.     11 C0000-C7FFF (default)
  4330. Notes:    at least on the ET4000, this register is protected by a 'key'
  4331.     this register is also supported by ET3000, but the above description
  4332.       is based on the ET4000
  4333. SeeAlso: #P127
  4334.  
  4335. Bitfields for EGA/VGA miscellaneous output register:
  4336. Bit(s)    Description    (Table P132)
  4337. ---Genoa SuperEGA in all emulation modes---
  4338.  7-6: vertical resolution
  4339.     00 (EGA) 200 lines
  4340.     01 (VGA) 400 lines
  4341.     10 (EGA/VGA) 350 lines
  4342.     11 (VGA) 480 lines
  4343. ------
  4344.  7    vertical sync polarity (0=positive, 1=negative)
  4345.  6    horizontal sync polarity (0=positive, 1=negative)
  4346.  5    odd/even pagebit
  4347.  4    EGA: 0=video driver on,
  4348.               1=video driver off (feature connector used)
  4349.  3-2    pixelclock
  4350.     00 14/25MHz (EGA/VGA)
  4351.     01 16/28Mhz (EGA/VGA)
  4352.     10 (EGA/VGA) external clock (EGA)
  4353.     11 (EGA/VGA) reserved
  4354.     10 (Genoa SuperEGA) 39Mhz
  4355.     11 (Genoa SuperEGA) 26,824Mhz
  4356.  1    enable CPU RAM access
  4357.  0    CRTC port address
  4358.     0=3B4 mono
  4359.     1=3D4 color
  4360.        (color EGA: enable feature control at 3DAh,status reg 1 at 3D2h)
  4361.  
  4362. Bitfields for EGA/VGA indexed registers in GDC:
  4363. Bit(s)    Description    (Table P133)
  4364.  00h    set/reset register (default 00h)
  4365.     functionality depending on write mode (register 05h) (see #P136)
  4366.     bit7-4: reserved
  4367.     bit3  : 0=write 00h, 1=write FFh in plane 3
  4368.     bit2  : 0=write 00h, 1=write FFh in plane 2
  4369.     bit1  : 0=write 00h, 1=write FFh in plane 1
  4370.     bit0  : 0=write 00h, 1=write FFh in plane 0
  4371.  01h    enable set/reset register (default 00h) (see #P134)
  4372.  02h    color compare register (default 00h) (see #P135)
  4373.  03h    data rotate register (default 00h)
  4374.     bit7-5: reserved
  4375.     bit4-3: logical function select
  4376.         00b= CPU-data overwrites
  4377.         01b= CPU-data AND with latch-register
  4378.         10b= CPU-data OR with latch-register
  4379.         11b= CPU-data XOR with latch-register
  4380.     bit2-0: rotate count
  4381.  04h    read map select register (default 00h)
  4382.     bit7-3: reserved
  4383.     bit2  : EGA?? & Genoa SuperEGA: map select bit2
  4384.     bit1-0: map select (0..3)
  4385.  05h    mode register (see #P136)
  4386.  06h    miscellaneous register
  4387.     bit7-4: reserved (=0)
  4388.     bit3-2: memory map
  4389.            00b = A0000..BFFFF (128KB)
  4390.            01b = A0000..AFFFF (64KB)
  4391.            10b = B0000..B7FFF (32KB)
  4392.            11b = B8000..BFFFF (32KB)
  4393.     bit1  : chain odd maps to even, 1=subst addess bit0
  4394.     bit0  : 0=testmode, 1=graphics mode
  4395.  07h    color don't care register
  4396.     bit7-4: reserved
  4397.     bit3=1: color plane 3 don't care (ignore bit3)
  4398.     bit2=1: color plane 2 don't care (ignore bit2)
  4399.     bit1=1: color plane 1 don't care (ignore bit1)
  4400.     bit0=1: color plane 0 don't care (ignore bit0)
  4401.  08h    bit mask register (default FFh)
  4402.     bit7-0: bitmask for latch/databyte
  4403.           (bit set=change allowed)
  4404.  0Fh    (Paradise SuperVGA) lock register
  4405.     The ability to write and reread 00h..07h to this register
  4406.     is often used as detection of Paradise chips.
  4407.     bit7-0 = 01h lock/hide Paradise specific registers
  4408.            = 05h unlock Paradise specific registers
  4409.     bit7-3: reserved
  4410.     bit2-0: flipflops, reserved
  4411.  
  4412. Bitfields for EGA/VGA GDC enable set/reset register:
  4413. Bit(s)    Description    (Table P134)
  4414.  7-4    reserved (used on Genoa SuperEGA???)
  4415.  3    enable set/reset plane 3
  4416.  2    enable set/reset plane 2
  4417.  1    enable set/reset plane 1
  4418.  0    enable set/reset plane 0
  4419.  3-0    0=CPU access, 1=set/reset access to plane
  4420. SeeAlso: #P133
  4421.  
  4422. Bitfields for EGA/VGA GDC color compare register:
  4423. Bit(s)    Description    (Table P135)
  4424.  7-4    reserved
  4425.  3    color compare 3
  4426.  2    color compare 2
  4427.  1    color compare 1
  4428.  0    color compare 0
  4429.  3-0    (color number)
  4430. SeeAlso: #P133
  4431.  
  4432. Bitfields for EGA/VGA GDC mode register:
  4433. Bit(s)    Description    (Table P136)
  4434.  7    reserved
  4435.  6    (VGA) 0=standard, 1=enable 256 colors
  4436.  5    shift register mode, 0=standard, 1=CGA-graphics
  4437.       (not used on Genoa SuperEGA???)
  4438.  4=1    enable odd/even address mode
  4439.  3    read mode, 0=mode0, 1=mode1
  4440.  2    (EGA) test condition, 0=standard, 1=output tristate
  4441.  1-0    write mode
  4442.     00 mode0, plane source is CPU or set/reset
  4443.     01 mode1, plane source is latch-register
  4444.     10 mode2, plane source is CPU as set/reset
  4445.     11 (VGA) mode3, CPU as set/reset AND bitmask
  4446. SeeAlso: #P133
  4447.  
  4448. (Table P137)
  4449. Values for EDSUN CEG (Continuous Edge Graphics) modes::
  4450.  x:  mode:     colors:  mix:    pixel depth:  effective colors:
  4451.  0 = disabled       256       -         8            256
  4452.  1 = A            16      16         8           1920
  4453.  2 = A+REP        16      16      8 dblscn       1920
  4454.  3 = A+EDP        15      16            truecolor
  4455.  4 = reserved         -       -         -             -
  4456.  5 = B            16       8         8            960
  4457.  6 = B+REP        16       8      8 dblscn        960
  4458.  7 = B+EDP        15       8            truecolor
  4459.  8 = reserved         -       -         -             -
  4460.  9 = C             8       8         4            224
  4461.  10 = C+REP         8       8      4 dblscn        224
  4462.  11 = C+EDP         7       8            truecolor
  4463.  12 = reserved         -       -         -             -
  4464.  13 = D           223      32         8         792096
  4465.  14 = D+REP       223      32      8 dblscn     792096
  4466.  15 = D+EDP       223      32            truecolor
  4467. SeeAlso: #P138
  4468.  
  4469. (Table P138)
  4470. Values for EDSUN CEG mixing codes:
  4471.  Mode A:           |  Mode C:
  4472.  mix: new:    old:   |   mix: new:   old:   colorcode:
  4473.    0 = 32/32    0/32   |    0 =      -     -     0
  4474.    1 = 30/32    2/32   |    1 =      -     -     1
  4475.    2 = 28/32    4/32   |    2 =      -     -     2
  4476.    3 = 26/32    6/32   |    3 =      -     -     3
  4477.    4 = 24/32    8/32   |    4 =      -     -     4
  4478.    5 = 22/32   10/32   |    5 =      -     -     5
  4479.    6 = 20/32   12/32   |    6 =      -     -     6
  4480.    7 = 18/32   14/32   |    7 =      -     -     7/EDP
  4481.    8 = 16/32   16/32   |    8 = 30/32    2/32   -
  4482.    9 = 14/32   18/32   |    9 = 28/32    4/32   -
  4483.   10 = 12/32   20/32   |   10 = 26/32    6/32   -
  4484.   11 = 10/32   22/32   |   11 = 24/32    8/32   -
  4485.   12 =    8/32   24/32   |   12 = 22/32  10/32   -
  4486.   13 =    6/32   26/32   |   13 = 20/32  12/32   -
  4487.   14 =    4/32   28/32   |   14 = 18/32  14/32   -
  4488.   15 =    2/32   30/32   |   15 = 16/32  16/32   -
  4489. ---Mode B:           |  Mode D:
  4490.  mix: new:    old:   |   mix:          new:   old:  description:
  4491.    0 = 30/32    2/32   |   00h..BEh =    -      -   normal color
  4492.    1 = 26/32    6/32   |   BFh        =    -      -   EDP
  4493.    2 = 22/32   10/32   |   C0h        = 32/32   0/32
  4494.    3 = 18/32   14/32   |   C1h        = 31/32   1/32
  4495.    4 = 14/32   18/32   |   C2h        = 30/32   2/32
  4496.    5 = 10/32   22/32   |   ...        =  ...    ...
  4497.    6 =    6/32   26/32   |   DFh        =  0/32  32/32
  4498.    7 =    2/32   30/32   |   E0h-FFh  =    -      -   normal color
  4499. SeeAlso: #P137
  4500. ----------P03CE03CF--------------------------
  4501. PORT 03CE-03CF - Compaq Qvision - Functionality Level
  4502.  
  4503. 03CE   W  graphics address register (index for next port) (see #P139)
  4504. 03CF  RW  other graphics register
  4505.  
  4506. (Table P139)
  4507. Values for Compaq QVision graphics register index:
  4508.  0Ch  RO    controller version
  4509.         2Fh Advanced VGA
  4510.         37h early QVision 1024
  4511.         71h QVision 1280 or later QVision 1024
  4512.  0Dh        extended controller version
  4513.  0Eh        extended controller capabilities
  4514.  0Fh        environment info
  4515.  54h        available memory
  4516.  55h        phase-locked-loop clock
  4517.  56h-57h    controller capabilities
  4518. ----------P03D003DF--------------------------
  4519. PORT 03D0-03DF - CGA   (Color Graphics Adapter)
  4520.  
  4521. 03D0  -W  same as PORT 03D4h
  4522. 03D1  RW  same as PORT 03D5h
  4523. 03D2  -W  same as PORT 03D4h
  4524. 03D3  RW  same as PORT 03D5h
  4525. 03D4  rW  CRT (6845) index register   (CGA/MCGA/color EGA/color VGA)
  4526.     selects which register (0-11h) is to be accessed through 03D5
  4527.     this port is r/w on some VGA, e.g. ET4000
  4528.         bit 7-6 =0: (VGA) reserved
  4529.         bit 5   =0: (VGA) reserved for testage
  4530.         bit 4-0   : selects which register is to be accessed through 03D5
  4531. 03D5   W  CRT (6845) data register    (CGA/MCGA/color EGA/color VGA)
  4532.     selected by port 03D4h. registers 0C-0F may be read
  4533.       (see also PORT 03B5h)
  4534.     MCGA, native EGA and VGA use very different defaults from those
  4535.       mentioned for the other adapters (for additional notes and
  4536.       registers 00h-0Fh and EGA, VGAs 10h-18h and ET4000 32h-37h see
  4537.       PORT 03B5h)
  4538.     registers 10h-11h on CGA, EGA, VGA and 12h-14h on EGA, VGA are
  4539.       conflictive with MCGA (see #P140)
  4540. 03D6   W  same as 03D4
  4541.     (under OS/2, reads return 0 if full-screen DOS session,
  4542.       nonzero if windowed DOS session)
  4543. 03D7  RW  same as 03D5
  4544. 03D8  RW  CGA mode control register  (except PCjr) (see #P141)
  4545.     cannot be found on native color EGA, color VGA, but on most clones
  4546. 03D9  RW  CGA palette register (see #P143)
  4547.     (MCGA) CGA border control register
  4548.     Cannot be found on native EGA, VGA (without translation ROM) but
  4549.       only most clones. Read access on Genoa SuperEGA is 'reset'???
  4550. 03DA  R      CGA status register (see #P142)
  4551.     color EGA/VGA: input status 1 register
  4552. 03DA   W  color EGA/color VGA feature control register (see #P144)
  4553.     (at PORT 03BAh w in mono mode, VGA: 3CAh r)
  4554. 03DA   W  HZ309 (MDA/HGC/CGA clone) card from in Heath/Zenith HZ150 PC
  4555.     bit7-1=0: unknown, zero is default and known to function
  4556.            properly at least in CGA modes.
  4557.     bit 0 = 1 override 3x8h bit3 control register that switches
  4558.            CRT beam off if bit3 is cleared. So screens always
  4559.            stays on.
  4560.     bit 0 = 0 3x8h bit3 indicates if CRT beam is on or off.
  4561.            No more info available. Might conflict with EGA/VGA.
  4562. 03DB  rW  clear light pen latch    (not MCGA)
  4563.           (R/W only with Genoa SuperEGA)
  4564. 03DC  RW  (not MCGA) preset light pen latch
  4565. 03DC   W  (CGA) set light pen latch
  4566. 03DD   W  (MCGA)  Extended mode control register
  4567.       (Plantronics & Genoa SuperEGA: Plantronics ColorPlus control,
  4568.               compatible with MCGA???)
  4569.     (default is 00h, in mode 13h: 04h)
  4570.     bit7 =1: DAC active, cannot be read
  4571.          =0: DAC not active, read allowed
  4572.     bit6-3 : reserved
  4573.     bit2 =1: videomode 13h with 256 colors active
  4574.     bit1    : reserved
  4575.     bit0 =0: reserved
  4576. 03DE  --  (MCGA) reserved
  4577. 03DE   W  AT&T & color ET4000 in AT&T compatibility mode: AT&T mode control
  4578.       register (see #P145)
  4579.     (register enabled in ET4000, if bit7=1 in CRTC 3D4h/34h.)
  4580. 03DF  --  (MCGA) reserved
  4581. 03DF  ?W  CRT/CPU page register     (PCjr only)
  4582.  
  4583. (Table P140)
  4584. Values for MCGA (only) CRT Controller register index:
  4585.  10h W    mode control register (defaults 18h, 1Ah, 19h)
  4586.     bit 7 = 1: suppress hsync/vsync
  4587.     bit 6 = 0: reserved
  4588.     bit 5     : reserved
  4589.     bit 4 = 1: dot clock rate
  4590.     bit 3 = 1: refresh calculations in 80x25 modes
  4591.     bit 2     : reserved
  4592.     bit 1 = 1: videomode 11h active
  4593.     bit 0 = 1: videomode 13h active
  4594.  10h R    mode control status register
  4595.     bit 7     : status bit0 CGA mode control register
  4596.     bit 6     : reserved
  4597.     bit 5 =1 clockrate 640 pixel, =0: clockrate/2 320 pixel
  4598.     bit 4 =1 : clock rate is 25,175Mhz
  4599.     bit 3 =1 : currently in textmode
  4600.     bit 2 =1 : double-scan activated
  4601.     bit 1 =1 : videomode 11h active
  4602.     bit 0 =1 : videomode 13h active
  4603.  11h    interrupt control register (default 30h)
  4604.     bit 7 =1 : set output driver to tristate
  4605.         =0: for reading of character generator reg (12h)
  4606.         =1: for reading of display sense register (12h)
  4607.     bit 6     : read only: intr generated by memory controller
  4608.     bit 5 =0 : requested intr ok to handle
  4609.     bit 4 =0 : free interrupt latch register
  4610.     bit 3-0     : reserved
  4611.  12h    character generator/sync polarity register
  4612.     (default 46h in all modes, except 04h in mode 11h)
  4613.     bit 7 =1 : character generator active
  4614.     bit 6 =1 : load codepage during display
  4615.           =0 : load codepage during retrace
  4616.     bit 5     : codepage number (0,1)
  4617.     bit 4 =1 : 512 characters active
  4618.           =0 : 256 characters active
  4619.     bit 3 =0 : reserved
  4620.     bit 2 =1 : enable hsync/vsync
  4621.     bit 1 =1 : positive vsync polarity
  4622.     bit 0 =1 : positive hsync polarity
  4623.  12h R    display sense register (11h, bit7=1)
  4624.     bit 7-2     : not used
  4625.     bit 1-0     : pins 11 & 12 in monitor cable
  4626.         00b = reserved
  4627.         01b = analogue monochrom monitor
  4628.         10b = analogue color graphics monitor
  4629.         11b = no monitor
  4630.  13h W    character font pointer register
  4631.     only 00h, 10h, 20h, 30h (default 00h) are allowed here
  4632.       for textmode fonts at A0000, A2000, A4000, A6000
  4633.  14h W    number of characters to load during vert. retrace period (default FFh)
  4634.  
  4635. Bitfields for CGA mode control register:
  4636. Bit(s)    Description    (Table P141)
  4637.  7-0    =A0h color ET4000: second part of 'key', see Hercules compatibility
  4638.       register (see PORT 03BFh) for details. For resetting the key, e.g.
  4639.       write 01h to PORT 03BFh and 29h to PORT 03D8h.
  4640.  7-6    not used
  4641.  6    color ET4000 only, read-only: report status of bit 1 (enable 2nd page)
  4642.       of hercules compatibility register (see PORT 03BFh)
  4643.  5    =1  blink enabled instead of foreground high-int.
  4644.  4    =1  640*200 graphics mode
  4645.  3    =1  video enabled (HZ309, see PORT 03DAh bit 0)
  4646.  2    =1  monochrome signal
  4647.                    (MCGA) in mode 6 and 11h color comes from pal-
  4648.                    regs 00 (black) and 07 (white), and can be
  4649.                    changed there.
  4650.  1    =0  text mode
  4651.     =1  320*200 graphics mode
  4652.  0    text columns (0 = 40*25 text mode, 1 = 80*25 text mode)
  4653. SeeAlso: #P142
  4654.  
  4655. Bitfields for CGA status register:
  4656. Bit(s)    Description    (Table P142)
  4657.  7-6    not used
  4658.  5-4    color EGA, color ET4000: diagnose video display feedback, select
  4659.       from color plane enable
  4660.  3    in vertical retrace
  4661.  2    (CGA,color EGA) light pen switch is off
  4662.     (MCGA,color ET4000) reserved (0)
  4663.  1    (CGA,color EGA) positive edge from light pen has set trigger
  4664.     (MCGA,color ET4000) reserved (0)
  4665.  0    horizontal retrace in progress
  4666.     =0  do not use memory
  4667.     =1  memory access without interfering with display
  4668.         (Genoa SuperEGA) horizontal or vertical retrace
  4669. SeeAlso: #P141,#P143
  4670.  
  4671. Bitfields for CGA palette register:
  4672. Bit(s)    Description    (Table P143)
  4673.  7-6    not used
  4674.  5    =0 active 320x200x4 color set: red, green brown
  4675.     =1 active 320x200x4 color set: cyan, magenta, white
  4676.  4    intense colors in graphics, background colors text
  4677.  3    intense border in 40*25, intense background in 320*200, intense
  4678.       foreground in 640*200
  4679.  2    red border in 40*25, red background in 320*200,    red foreground in
  4680.       640*200
  4681.  1    green border in 40*25, green background in 320*200, green foreground
  4682.       in 640*200
  4683.  0    blue border in 40*25, blue background in 320*200, blue foreground in
  4684.        640*200
  4685. SeeAlso: #P141,#P142 
  4686.  
  4687. Bitfields for color EGA/VGA feature control register:
  4688. Bit(s)    Description    (Table P144)
  4689.  7    ET4000 only: enable NMI generation ('key' protected)
  4690.  6-4    not used
  4691.  3    (VGA) 0 = normal vsync, 1 = vsync OR display enable
  4692.  2    reserved
  4693.  1    EGA and ET4000 only: FEAT1 control bit1 (pin17 feature connector)
  4694.  0    EGA and ET4000 only: FEAT0 control bit0 (pin19 feature connector)
  4695.  
  4696. Bitfields for AT&T mode control register:
  4697. Bit(s)    Description    (Table P145)
  4698.  7    reserved
  4699.  6    underline color attribute enable
  4700.     ET4000: enabled, if bit6=1 in CRTC 3D4h/34h.
  4701.  5    reserved
  4702.  4    reserved
  4703.  3    alternate page select (=1: 2nd 16KB page, with bit0=0)
  4704.  2    alternate font select (0=default font block)
  4705.  1    reserved
  4706.  0    double scan line mode (0=IBM 200, 1=AT&T 400 line graphics)
  4707.     (ET4000) enabled, if bit7-6=11b in CRTC 3D4h/34h.
  4708. ----------P03E003E8--------------------------
  4709. PORT 03E0-03E8    - LPT port address on the UniRAM card by German magazine c't
  4710. Range:    selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  4711. ----------P03E003EF--------------------------
  4712. PORT 03E0-03EF - COM port addresses on UniRAM card by German magazine c't
  4713. Range:    selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  4714. ----------P03E803EF--------------------------
  4715. PORT 03E8-03EF - serial port, same as 02E8, 02F8 and 03F8 (COM3)
  4716. SeeAlso: PORT 03F8h-03FFh
  4717. ----------P03E803EF--------------------------
  4718. PORT 03E8-03EF    -  LPT port address on the UniRAM card by German magazine c't
  4719. Range:    selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  4720. ----------P03EB------------------------------
  4721. PORT 03EB - GI1904 Scanner Interface Adapter
  4722. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh
  4723. Range:    PORT 036Bh, PORT 03ABh
  4724. ----------P03F003F7--------------------------
  4725. PORT 03F0-03F7 - FDC 1    (1st Floppy Disk Controller)    second FDC at 0370
  4726. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  4727.       compatible), or an 82072 or 82077AA for perpendicular recording at
  4728.       2.88M
  4729. SeeAlso: PORT 0370h-0377h
  4730.  
  4731. 03F0  R      diskette controller status A (PS/2) (see #P146)
  4732. 03F0  R      diskette controller status A (PS/2 model 30) (see #P147)
  4733. 03F0  R      diskette EHD controller board jumper settings (82072AA) (see #P148)
  4734. 03F1  R      diskette controller status B (PS/2) (see #P149)
  4735. 03F1  R      diskette controller status B (PS/2 model 30) (see #P150)
  4736. 03F2   W  diskette controller DOR (Digital Output Register) (see #P151)
  4737. 03F3  ?W  tape drive register (on the 82077AA)
  4738.     bit 7-2     reserved, tri-state
  4739.     bit 1-0     tape select
  4740.         =00  none, drive 0 cannot be a tape drive.
  4741.         =01  drive1
  4742.         =10  drive2
  4743.         =11  drive3
  4744. 03F4  R      diskette controller main status register (see #P152)
  4745.     Note:    in non-DMA mode, all data transfers occur through
  4746.           PORT 03F5h and the status registers (bit 5 here
  4747.           indicates data read/write rather than than
  4748.           command/status read/write)
  4749. 03F4   W  diskette controller data rate select register (see #P153)
  4750. 03F5  R      diskette command/data register 0 (ST0) (see #P154)
  4751.     status register 1 (ST1) (see #P155)
  4752.     status register 2 (ST2) (see #P156)
  4753.     status register 3 (ST3) (see #P157)
  4754. 03F5   W  diskette command register.  The commands summarized here are
  4755.       mostly multibyte commands. This is for brief recognition only.
  4756.       (see #P160)
  4757. 03F6  --  reserved on FDC
  4758. 03F6  rW  FIXED disk controller data register (see #P158)
  4759. 03F7  RW  harddisk controller (see #P159)
  4760. 03F7  R      diskette controller DIR (Digital Input Register, PC/AT mode)
  4761.          bit 7 = 1 diskette change
  4762.          bit 6-0   tri-state on FDC
  4763. 03F7  R      diskette controller DIR (Digital Input Register, PS/2 mode)
  4764.          bit 7     = 1 diskette change
  4765.          bit 6-3 = 1
  4766.          bit 2         datarate select1
  4767.          bit 1         datarate select0
  4768.          bit 0     = 0 high density select (500Kb/s, 1Mb/s)
  4769.     conflict bit 0       FIXED DISK drive 0 select
  4770. 03F7  R      diskette controller DIR (Digital Input Register, PS/2 model 30)
  4771.          bit 7     = 0 diskette change
  4772.          bit 6-4 = 0
  4773.          bit 3         -DMA gate (value from DOR register)
  4774.          bit 2         NOPREC (value from CCR register)
  4775.          bit 1         datarate select1
  4776.          bit 0         datarate select0
  4777.     conflict bit 0       FIXED DISK drive 0 select
  4778. 03F7   W  configuration control register (PC/AT, PS/2)
  4779.          bit 7-2       reserved, tri-state
  4780.          bit 1-0 = 00  500 Kb/S mode (MFM)
  4781.              = 01  300 Kb/S mode (MFM)
  4782.              = 10  250 Kb/S mode (MFM)
  4783.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  4784.     conflict bit 0       FIXED DISK drive 0 select
  4785. 03F7   W  configuration control register (PS/2 model 30)
  4786.          bit 7-3       reserved, tri-state
  4787.          bit 2           NOPREC (has no function. set to 0 by hardreset)
  4788.          bit 1-0 = 00  500 Kb/S mode (MFM)
  4789.              = 01  300 Kb/S mode (MFM)
  4790.              = 10  250 Kb/S mode (MFM)
  4791.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  4792.     conflict bit 0       FIXED DISK drive 0 select
  4793.  
  4794. Bitfields for diskette controller status A (PS/2):
  4795. Bit(s)    Description    (Table P146)
  4796.  7    interrupt pending
  4797.  6    -DRV2    second drive installed
  4798.  5    step
  4799.  4    -track 0
  4800.  3    head 1 select
  4801.  2    -index
  4802.  1    -write protect
  4803.  0    +direction
  4804. SeeAlso: #P147,#P149
  4805.  
  4806. Bitfields for diskette controller status A (PS/2 model 30):
  4807. Bit(s)    Description    (Table P147)
  4808.  7    interrupt pending
  4809.  6    DRQ
  4810.  5    step F/F
  4811.  4    -track 0
  4812.  3    head 1 select
  4813.  2    +index
  4814.  1    +write protect
  4815.  0    -direction
  4816. SeeAlso: #P146,#P148,#P150
  4817.  
  4818. Bitfields for diskette EHD controller board jumper settings:
  4819. Bit(s)    Description    (Table P148)
  4820.  7-6    drive 3
  4821.  5-4    drive 2
  4822.  3-2    drive 1
  4823.  1-0    drive 0
  4824.      00  1.2Mb
  4825.      01  720Kb
  4826.      10  2.8Mb
  4827.      11  1.4Mb
  4828. SeeAlso: #P146
  4829.  
  4830. Bitfields for diskette controller status B (PS/2):
  4831. Bit(s)    Description    (Table P149)
  4832.  7-6    reserved (1)
  4833.  5    drive select (0=A:, 1=B:)
  4834.  4    write data
  4835.  3    read data
  4836.  2    write enable
  4837.  1    motor enable 1
  4838.  0    motor enable 0
  4839. SeeAlso: #P146,#P150
  4840.  
  4841. Bitfields for diskette controller status B (PS/2 model 30):
  4842. Bit(s)    Description    (Table P150)
  4843.  7    -DRV2 second drive installed
  4844.  6    -DS1
  4845.  5    -DS0
  4846.  4    write data F/F
  4847.  3    read data F/F
  4848.  2    write enable F/F
  4849.  1    -DS3
  4850.  0    -DS2
  4851. SeeAlso: #P147,#P149
  4852.  
  4853. Bitfields for diskette controller Digital Output Register (DOR):
  4854. Bit(s)    Description    (Table P151)
  4855.  7-6    reserved on PS/2
  4856.  7    drive 3 motor enable
  4857.  6    drive 2 motor enable
  4858.  5    drive 1 motor enable
  4859.  4    drive 0 motor enable
  4860.  3    diskette DMA enable (reserved PS/2)
  4861.  2    =1  FDC enable    (controller reset)
  4862.     =0  hold FDC at reset
  4863.  1-0    drive select (0=A 1=B ..)
  4864. SeeAlso: #P146,#P152,#P153
  4865.  
  4866. Bitfields for diskette controller main status register:
  4867. Bit(s)    Description    (Table P152)
  4868.  7    =1  RQM     data register is ready
  4869.     =0  no access is permitted
  4870.  6    =1  transfer is from controller to system
  4871.     =0  transfer is from system to controller
  4872.  5    non-DMA mode
  4873.  4    diskette controller is busy
  4874.  3    drive 3 busy (reserved on PS/2)
  4875.  2    drive 2 busy (reserved on PS/2)
  4876.  1    drive 1 busy (= drive is in seek mode)
  4877.  0    drive 0 busy (= drive is in seek mode)
  4878. SeeAlso: #P151
  4879.  
  4880. Bitfields for diskette controller data rate select register:
  4881. Bit(s)    Description    (Table P153)
  4882.  7-2    reserved on 8272
  4883.  7    software reset (self clearing)    82072/82077AA
  4884.  6    power down            82072/82077AA
  4885.  5    (8272/82077AA) reserved (0)
  4886.     (82072) PLL select bit
  4887.  4-2    write precompensation value, 000 default
  4888.  1-0    data rate select
  4889.     =00  500 Kb/S MFM    250 Kb/S FM
  4890.     =01  300 Kb/S MFM    150 Kb/S FM
  4891.     =10  250 Kb/S MFM    125 Kb/S FM
  4892.     =11  1Mb/S    MFM    illegal     FM on 8207x
  4893. SeeAlso: #P151
  4894.  
  4895. Bitfields for diskette command/data register 0 (ST0):
  4896. Bit(s)    Description    (Table P154)
  4897.  7-6    last command status
  4898.     00  command terminated successfully
  4899.     01  command terminated abnormally
  4900.     10  invalid command
  4901.     11  terminated abnormally by change in ready signal
  4902.  5    seek completed
  4903.  4    equipment check occurred after error
  4904.  3    not ready
  4905.  2    head number at interrupt
  4906.  1-0    unit select (0=A 1=B .. ) (on PS/2: 01=A  10=B)
  4907. SeeAlso: #P155,#P156,#P157
  4908.  
  4909. Bitfields for diskette status register 1 (ST1):
  4910. Bit(s)    Description    (Table P155)
  4911.  7    end of cylinder; sector# greater then sectors/track
  4912.  6    =0
  4913.  5    CRC error in ID or data field
  4914.  4    overrun
  4915.  3    =0
  4916.  2    sector ID not found
  4917.  1    write protect detected during write
  4918.  0    ID address mark not found
  4919. SeeAlso: #P154,#P156,#P157
  4920.  
  4921. Bitfields for diskette status register 2 (ST2):
  4922. Bit(s)    Description    (Table P156)
  4923.  7    =0
  4924.  6    deleted Data Address Mark detected
  4925.  5    CRC error in data
  4926.  4    wrong cylinder detected
  4927.  3    scan command equal condition satisfied
  4928.  2    scan command failed, sector not found
  4929.  1    bad cylinder, ID not found
  4930.  0    missing Data Address Mark 
  4931. SeeAlso: #P154,#P155,#P157
  4932.  
  4933. Bitfields for diskette status register 3 (ST3):
  4934. Bit(s)    Description    (Table P157)
  4935.  7    fault status signal
  4936.  6    write protect status
  4937.  5    ready status
  4938.  4    track zero status
  4939.  3    two sided status signal
  4940.  2    side select (head select)
  4941.  1-0    unit select (0=A 1=B .. )
  4942. SeeAlso: #P154,#P155,#P156
  4943.  
  4944. Bitfields for fixed disk controller data register:
  4945. Bit(s)    Description    (Table P158)
  4946.  7-4    reserved
  4947.  3    =0  reduce write current
  4948.     =1  head select 3 enable
  4949.  2    disk reset enable
  4950.  1    disk initialization disable
  4951.  0    reserved
  4952. SeeAlso: #P151,#P159
  4953.  
  4954. Bitfields for hard disk controller:
  4955. Bit(s)    Description    (Table P159)
  4956.  6    FIXED DISK write gate
  4957.  5    FIXED DISK head select 3 / reduced write current
  4958.  4    FIXED DISK head select 2
  4959.  3    FIXED DISK head select 1
  4960.  2    FIXED DISK head select 0
  4961.  1    FIXED DISK drive 1 select
  4962.  0    FIXED DISK drive 0 select
  4963. SeeAlso: #P158
  4964.  
  4965. (Table P160)
  4966. Values for diskette commands:
  4967.     MFM = MFM mode selected, opposite to MF mode.
  4968.     HDS = head select
  4969.     DS  = drive select
  4970.     MT  = multi track operation
  4971.     SK  = skip deleted data address mark
  4972.    Command         # bytes    D7  6    5   4    3   2    1   0
  4973.  read track        9    0  MFM    0   0    0   0    1   0
  4974.                 0   0    0   0    0 HDS DS1 DS0
  4975.  specify        3    0   0    0   O    O   O    1   1
  4976.  sense drive status    2    0   0    0   0    0   1    0   0
  4977.                 0   0    0   0    0 HDS DS1 DS0
  4978.  write data        9    MT MFM    0   0    0   1    0   1
  4979.                 0   0    0   0    0 HDS DS1 DS0
  4980.  read data        9    MT MFM SK   0    0   1    1   0
  4981.                 0   0    0   0    0 HDS DS1 DS0
  4982.  recalibrate        2    0   0    0   0    0   1    1   1
  4983.                 0   0    0   0    0   0 DS1 DS0
  4984.  sense interrupt status 1    0   0    0   0    1   0    0   0
  4985.  write deleted data    9    MT MFM    0   0    1   0    0   1
  4986.                 0   0    0   0    0 HDS DS1 DS0
  4987.  read ID        2    0  MFM    0   0    1   0    1   0
  4988.                 0   0    0   0    0 HDS DS1 DS0
  4989.  read deleted data    9    MT MFM SK   0    1   1    0   0
  4990.                 0   0    0   0    0 HDS DS1 DS0
  4991.  format track        10    0  MFM    0   0    1   1    0   1
  4992.                 0   0    0   0    0 HDS DS1 DS0
  4993.  dumpreg **        1    0   0    0   0    1   1    1   0
  4994.  seek            3    0   0    0   0    1   1    1   1
  4995.                 0   0    0   0    0 HDS DS1 DS0
  4996.  version **        1    0   0    0   1    0   0    0   0
  4997.  scan equal *        9    MT MFM SK   1    0   0    0   1
  4998.                 0   0    0   0    0 HDS DS1 DS0
  4999.  perpendicular mode **    2    0   0    0   1    0   0    1   0
  5000.                 0   0    0   0    0   0 WGATE GAP
  5001.  configure **        4    0   0    0   1    0   0    1   1
  5002.                 0   0    0   0    0   0    0   0
  5003.  verify            9    MT MFM SK   1    0   1    1   0
  5004.                 EC  0    0   0    0 HDS DS1 DS0
  5005.  scan low or equal *    9    MT MFM SK   1    1   0    0   1
  5006.                 0   0    0   0    0 HDS DS1 DS0
  5007.  scan high or equal *    9    MT MFM SK   1    1   1    0   1
  5008.                 0   0    0   0    0 HDS DS1 DS0
  5009.  relative seek **    3    1  DIR    0   0    1   1    1   1
  5010.                 0   0    0   0    0 HDS DS1 DS0
  5011. BEWARE: not every invalid command is treated as invalid!
  5012.  *  Note: the scan commands aren't mentioned for the 82077AA.
  5013.  ** Note: EHD controller commands.
  5014. ----------P03F003F1--------------------------
  5015. PORT 03F0-03F1 - PCTech RZ1000 IDE controller
  5016. Note:    to unlock access to these ports instead of the standard floppy
  5017.       controller status ports at these two addresses, you must perform
  5018.       two immediately successive 8-bit OUTs of 55h to port 03F0h (there
  5019.       is a fairly small time limit between the two accesses, so there
  5020.       should be no other instructions between the two OUTs); after
  5021.       that, values written to port 03F0h select the data accessed through
  5022.       port 03F1h until an AAh is written to 03F0h
  5023. SeeAlso: #0586
  5024.  
  5025. 03F0  ?W  index port (see #P161)
  5026. 03F1  RW  data port
  5027.  
  5028. (Table P161)
  5029. Values for RZ1000 IDE controller registers:
  5030.  00h    ???
  5031.     bit 7:
  5032.     bit 1:
  5033.     bit 0:
  5034.  01h    ???
  5035.  02h    ???
  5036.  03h    ???
  5037.  04h    ???
  5038.  05h    ???
  5039.     bit 1:
  5040.  AAh    lock control port
  5041. ----------P03F803FF--------------------------
  5042. PORT 03F8-03FF - serial port (8250,8250A,8251,16450,16550,16550A,etc.) COM1
  5043. Range:    PORT 02E8h-02EFh (COM2), PORT 02F8h-02FFh (typical non-PS/2 COM3), and
  5044.       PORT 03E8h-03EFh (typical non-PS/2 COM4)
  5045. Note:    chips overview:
  5046.      8250  original PC, specified up to 56Kbd, but mostly runs
  5047.            only 9600Bd, no scratchregister, bug: sometimes shots
  5048.            ints without reasons
  5049.      8250A, 16450, 16C451: ATs, most chips run up to 115KBd,
  5050.            no bug: shots no causeless ints
  5051.      8250B: PC,XT,AT, pseudo bug: shots one causeless int for
  5052.         compatibility with 8250, runs up to 56KBd
  5053.      16550, 16550N, 16550V: early PS/2, FIFO bugs
  5054.      16550A,16550AF,16550AFN,16550C,16C551,16C552: PS/2, FIFO ok
  5055.      82510: laptops & industry, multi emulation mode
  5056.         (default=16450), special-FIFO.
  5057.      8251: completely different synchronous SIO chip, not compatible!
  5058.  
  5059. 03F8   W  serial port, transmitter holding register (THR), which contains the
  5060.       character to be sent. Bit 0 is sent first.
  5061.         bit 7-0      data bits when DLAB=0 (Divisor Latch Access Bit)
  5062. 03F8  R      receiver buffer register (RBR), which contains the received
  5063.       character. Bit 0 is received first
  5064.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  5065. 03F8  RW  divisor latch low byte (DLL) when DLAB=1 (see #P162)
  5066. 03F9  RW  divisor latch high byte (DLM) when DLAB=1 (see #P162)
  5067. 03F9  RW  interrupt enable register (IER) when DLAB=0 (see #P163)
  5068. 03FA  R      interrupt identification register (see #P164)
  5069.     Information about a pending interrupt is stored here. When the ID
  5070.       register is addressed, thehighest priority interrupt is held, and
  5071.       no other interrupts are acknowledged until the CPU services that
  5072.       interrupt.
  5073. 03FA   W  16650 FIFO Control Register (FCR) (see #P165)
  5074. 03FB  RW  line control register (LCR) (see #P166)
  5075. 03FC  RW  modem control register (see #P167)
  5076. 03FD  R      line status register (LSR) (see #P168)
  5077. 03FE  R      modem status register (MSR) (see #P169)
  5078. 03FF  RW  scratch register (SCR)
  5079.     (not used for serial I/O; available to any application using 16450,
  5080.       16550) (not present on original 8250)
  5081.  
  5082. (Table P162)
  5083. Values for serial port divisor latch registers:
  5084.  Some baudrates (using standard 1.8432 Mhz clock):
  5085.        baudrate       divisor     DLM  DLL
  5086.         50       2304          09h 00h
  5087.         75       1536          06h 00h
  5088.        110       1047          04h 17h
  5089.        134,5    857          03h 59h
  5090.        150        768          03h 00h
  5091.        300        384          01h 80h
  5092.        600        192          00h C0h
  5093.       1200         96          00h 60h
  5094.       1800         64          00h 40h
  5095.       2000         58          00h 3Ah
  5096.       2400         48          00h 30h
  5097.       3600         32          00h 20h
  5098.       4800         24          00h 18h
  5099.       7200         16          00h 10h
  5100.       9600         12          00h 0Ch
  5101.      19200          6          00h 06h
  5102.      38400          3          00h 03h
  5103.      57600          2          00h 02h
  5104.     115200          1          00h 01h
  5105. Note:    MIDI baudrate 32250Bd with 4Mhz quarz for c't MIDI interface
  5106.       following c't 01/1991:   '14400'      00h 08h
  5107.  
  5108. Bitfields for serial port interrupt enable registe (IER):
  5109. Bit(s)    Description    (Table P163)
  5110.  7-4    reserved (0)
  5111.  3    modem-status interrupt enable
  5112.  2    receiver-line-status interrupt enable
  5113.  1    transmitter-holding-register empty interrupt enable
  5114.  0    received-data-available interrupt enable
  5115.       (also 16550(A) timeout interrupt)
  5116. Note:    16550(A) will interrupt with a timeout if data exists in the FIFO
  5117.       and isn't read within the time it takes to receive four bytes or if
  5118.       no data is received within the time it takes to receive four bytes
  5119. SeeAlso: #P164
  5120.  
  5121. Bitfields for serial port interrupt identification register (IIR):
  5122. Bit(s)    Description    (Table P164)
  5123.  7-6    =00  reserved on 8250, 8251, 16450
  5124.     =01  if FIFO queues enabled but unusable (16550 only)
  5125.     =11  if FIFO queues are enabled (16550A only) (see also #P165)
  5126.  6-5    (used by 82510 for FIFO status???)
  5127.  5-4    reserved (0)
  5128.  3    (8250,16450) reserved (0)
  5129.     (16550) timeout interrupt pending
  5130.  2-1    identify pending interrupt with the highest priority
  5131.     11    receiver line status interrupt. priority=highest
  5132.     10    received data available register interrupt. pr.=second
  5133.     01    transmitter holding register empty interrupt. pr.=third
  5134.     00    modem status interrupt. priority=fourth
  5135.  0    =0 interrupt pending. contents of register can be used as a pointer
  5136.       to the appropriate interrupt service routine
  5137.     =1 no interrupt pending
  5138. Notes:    interrupt pending flag uses reverse logic, 0=pending, 1=none
  5139.     interrupt will occur if any of the line status bits are set
  5140.     THRE bit is set when THRE register is emptied into the TSR
  5141. SeeAlso: #P163
  5142.  
  5143. Bitfields for serial port FIFO control register (FCR):
  5144. Bit(s)    Description    (Table P165)
  5145.  7-6    received data available interrupt trigger level (16550)
  5146.     00  1 byte
  5147.     01  4 bytes
  5148.     10  8 bytes
  5149.     11 14 bytes
  5150.  6-5    =00  (used to enable 4 byte Rx/Tx FIFOs on 82510???)
  5151.         =10 ???
  5152.  5-4    reserved (00)
  5153.  3    change RXRDY  TXRDY pins from mode 0 to mode 1
  5154.  2    clear XMIT FIFO
  5155.  1    clear RCVR FIFO
  5156.  0    enable clear XMIT and RCVR FIFO queues
  5157.  4-0    (other purpose on 82510???)
  5158. Notes:    bit 0 must be set in order to write to other FCR bits
  5159.     bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  5160.       the receiver shift register is not cleared
  5161.     bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  5162.       the transmit shift register is not cleared
  5163.     due to a hardware bug, 16550 FIFOs don't work correctly (this
  5164.       was fixed in the 16550A)
  5165. SeeAlso: #P164
  5166.  
  5167. Bitfields for serial port Line Control Register (LCR):
  5168. Bit(s)    Description    (Table P166)
  5169.  7    =1  divisor latch access bit (DLAB)
  5170.     =0  receiver buffer, transmitter holding, or interrupt enable register
  5171.       access
  5172.  6    set break enable. serial ouput is forced to spacing state and remains
  5173.       there.
  5174.  5-3    PM2 PM1 PM0
  5175.      x   x     0 = no parity
  5176.      0   0     1 = odd parity
  5177.      0   1     1 = even parity
  5178.      1   0     1 = high parity (sticky)
  5179.      1   1     1 = low parity (sticky)
  5180.      x   x     1 = software parity
  5181.  2    stop bit length (STB/SBL)
  5182.     0  one stop bit 
  5183.     1  2 stop bits with (word length 6, 7, 8)
  5184.        1.5 stop bits with word length 5
  5185.  1-0    (WLS1-0, CL1-0)
  5186.     00 word length is 5 bits
  5187.     01 word length is 6 bits
  5188.     10 word length is 7 bits
  5189.     11 word length is 8 bits
  5190. SeeAlso: #P167,#P168,#P169
  5191.  
  5192. Bitfields for serial port Modem Control Register (MCR):
  5193. Bit(s)    Description    (Table P167)
  5194.  7-5    reserved (0)
  5195.  4    loopback mode for diagnostic testing of serial port
  5196.     output of transmitter shift register is looped back to receiver
  5197.       shift register input. In this mode, transmitted data is received
  5198.       immediately so that the CPU can verify the transmit data/receive
  5199.       data serial port paths.
  5200.     If OUT2 is disabled, there is no official way to generate an IRQ
  5201.       during loopback mode.
  5202.  3    auxiliary user-designated output 2 (OUT2)
  5203.     because of external circuity OUT2 must be 1 to master-intr-enableing.
  5204.     BUG: Some Toshiba Laptops utilize this bit vice versa, newer Toshiba
  5205.       machines allow assignment of the bit's polarity in system setup.
  5206.     82050: This bit is only effective, if the chip is being used with an
  5207.       externally-generated clock.
  5208.  2    =1/0  auxiliary user-designated output 1 (OUT1)
  5209.     should generally be cleared!!
  5210.     Some external hardware, e.g. c't MIDI interface (and compatibles) use
  5211.       this bit to change the 8250 input clock from 1,8432 MHz to 4Mhz
  5212.       (enabling MIDI-conformant baudrates) and switching to
  5213.       MIDI-compatible current loop connectors.
  5214.  1    force request-to-send active (RTS)
  5215.  0    force data-terminal-ready active (DTR)
  5216. SeeAlso: #P166,#P168,#P169
  5217.  
  5218. Bitfields for serial port Line Status Register (LSR):
  5219. Bit(s)    Description    (Table P168)
  5220.  7    =0  reserved
  5221.     =1  on some chips produced by UMC
  5222.  6    transmitter shift and holding registers empty
  5223.  5    transmitter holding register empty (THRE)
  5224.     Controller is ready to accept a new character to send.
  5225.  4    break interrupt. the received data input is held in the zero bit
  5226.       state longer than the time of start bit + data bits + parity bit +
  5227.       stop bits.
  5228.  3    framing error (FE). the stop bit that follows the last parity or data
  5229.       bit is a zero bit
  5230.  2    parity error (PE). Character has wrong parity
  5231.  1    overrun error (OE). a character was sent to the receiver buffer
  5232.       before the previous character in the buffer could be read. This
  5233.       destroys the previous character.
  5234.  0    data ready. a complete incoming character has been received and sent
  5235.       to the receiver buffer register.
  5236. SeeAlso: #P166,#P167,#P169
  5237.  
  5238. Bitfields for serial port Modem Status Register (MSR):
  5239. Bit(s)    Description    (Table P169)
  5240.  7    data carrier detect (-DCD)
  5241.  6    ring indicator (-RI)
  5242.  5    data set ready (-DSR)
  5243.  4    clear to send (-CTS)
  5244.  3    delta data carrier detect (DDCD)
  5245.  2    trailing edge ring indicator (TERI)
  5246.  1    delta data set ready (DDSR)
  5247.  0    delta clear to send (DCTS)
  5248. Notes:    bits 0-3 are reset when the CPU reads the MSR
  5249.     bit 4 is the Modem Control Register RTS during loopback test
  5250.     bit 5 is the Modem Control Register DTR during loopback test
  5251.     bit 6 is the Modem Control Register OUT1 during loopback test
  5252.     bit 7 is the Modem Control Register OUT2 during loopback test
  5253. SeeAlso: #P166,#P167,#P168
  5254. ---------------------------------------------
  5255.  
  5256.     Adresses above 03FF generally apply to EISA machines only !
  5257.  
  5258.     1000-1FFF    slot 1 EISA
  5259.     2000-2FFF    slot 2 EISA
  5260.     3000-3FFF    slot 3 EISA
  5261.     4000-4FFF    slot 4 EISA
  5262.     5000-5FFF    slot 5 EISA
  5263.     6000-6FFF    slot 6 EISA
  5264.     7000-7FFF    slot 7 EISA
  5265. ----------P0401040B--------------------------
  5266. PORT 0401-040B - EISA DMA Controller
  5267. SeeAlso: PORT 0481h-048Bh"EISA",PORT 04D4h-04D6h"EISA"
  5268.  
  5269. 0401  RW  DMA channel 0 word count byte 2 (high)
  5270. 0403  RW  DMA channel 1 word count byte 2 (high)
  5271. 0405  RW  DMA channel 2 word count byte 2 (high)
  5272. 0407  RW  DMA channel 3 word count byte 2 (high)
  5273. 040A   W  extended DMA chaining mode register, channels 0-3 (see #P170)
  5274. 040A  R      channel interrupt (IRQ13) status register (see #P171)
  5275. 040B   W  DMA extended mode register for channels 0-3 (see #P172)
  5276.     (bit settings same as 04D6)
  5277.  
  5278. Bitfields for EISA extended DMA chaining mode register (channels 0-3):
  5279. Bit(s)    Description    (Table P170)
  5280.  7-5    reserved
  5281.  4    =0  generates IRQ13
  5282.     =1  generates terminal count
  5283.  3    =0  do not start chaining
  5284.     =1  programming complete
  5285.  2    =0  disable buffer chaining mode (default)
  5286.     =1  enable buffer chaining mode
  5287.  1-0    DMA channel select
  5288. SeeAlso: #P171,#P172,#P176
  5289.  
  5290. Bitfields for EISA channel interrupt (IRQ13) status register:
  5291. Bit(s)    Description    (Table P171)
  5292.  7-5  interrupt on channels 7-5
  5293.  4      reserved
  5294.  3-0  interrupt on channels 3-0
  5295. SeeAlso: #P170
  5296.  
  5297. Bitfields for EISA DMA extended mode register (channels 0-3):
  5298. Bit(s)    Description    (Table P172)
  5299.  7    =0 enable stop register
  5300.  6    =0 terminal count is an output for this channel    (default)
  5301.  5-4    DMA cycle timing
  5302.     00 ISA-compatible (default)
  5303.     01 type A timing mode
  5304.     10 type B timing mode
  5305.     11 burst DMA mode
  5306.  3-2    Address mode
  5307.     00 8-bit I/O, count by bytes (default)
  5308.     01 16-bit I/O, count by words, address shifted
  5309.     10 32-bit I/O, count by bytes
  5310.     11 16-bit I/O, count by bytes
  5311.  1-0    DMA channel select
  5312. SeeAlso: #P170,#P177
  5313. ----------P04610462--------------------------
  5314. PORT 0461-0462 - EISA NMI CONTROL
  5315.  
  5316. 0461  RW  Extended NMI status/control register (see #P173)
  5317. 0462   W  Software NMI register. writing to this register causes an NMI    if
  5318.       NMIs are enabled
  5319.     bit 7 = 1  generates an NMI
  5320.  
  5321. Bitfields for EISA extended NMI status control register:
  5322. Bit(s)    Description    (Table P173)
  5323.  7    NMI pending from fail-safe timer (read only)
  5324.  6    NMI pending from bus timeout NMI status (read only)
  5325.  5    NMI pending (read only)
  5326.  4    reserved
  5327.  3    bus timeout NMI enable (read/write)
  5328.  2    fail-safe NMI enable (read/write)
  5329.  1    NMI I/O port enable (read/write)
  5330.  0    RSTDRV. bus reset (read/write)
  5331.     =0  NORMAL bus reset operation
  5332.     =1  reset bus asserted
  5333. --------X-P04640465--------------------------
  5334. PORT 0464-0465 - EISA BUS MASTER STATUS
  5335.  
  5336. 0464w R      bus master status latch register (slots 1-16)
  5337.     identifies the last bus master that had control of the bus (bit N =
  5338.       slot N+1 had control last)
  5339. ----------P0481048B--------------------------
  5340. PORT 0481-048B ---- EISA DMA page registers
  5341. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04C6h-04CFh"EISA"
  5342.  
  5343. 0481  RW  DMA channel 2 address byte 3 (high)
  5344. 0482  RW  DMA channel 3 address byte 3 (high)
  5345. 0483  RW  DMA channel 1 address byte 3 (high)
  5346. 0487  RW  DMA channel 0 address byte 3 (high)
  5347. 0489  RW  DMA channel 6 address byte 3 (high)
  5348. 048A  RW  DMA channel 7 address byte 3 (high)
  5349. 048B  RW  DMA channel 5 address byte 3 (high)
  5350. ----------P04C604CF--------------------------
  5351. PORT 04C6-04CF ---- EISA DMA count registers
  5352. SeeAlso: PORT 0401h-040Bh"EISA",PORT 0481h-048Bh"EISA",PORT 04E0h-04FFh"EISA"
  5353.  
  5354. 04C6  RW  DMA channel 5 word count byte 2 (high)
  5355. 04CA  RW  DMA channel 6 word count byte 2 (high)
  5356. 04CE  RW  DMA channel 7 word count byte 2 (high)
  5357. --------X-P04D004D1--------------------------
  5358. PORT 04D0-04D1 ---- EISA IRQ control
  5359. SeeAlso: PORT 04D4h-040Bh"EISA"
  5360.  
  5361. 04D0   W  IRQ 0-7 interrupt edge/level registers (see #P174)
  5362. 04D1   W  IRQ 8-15 interrupt edge/level registers (see #P175)
  5363.  
  5364. Bitfields for EISA IRQ 0-7 interrupt edge/level register:
  5365. Bit(s)    Description    (Table P174)
  5366.  7    IRQ 7 is level sensitive
  5367.  6    IRQ 6 is level sensitive
  5368.  5    IRQ 5 is level sensitive
  5369.  4    IRQ 4 is level sensitive
  5370.  3    IRQ 3 is level sensitive
  5371.  2-0    reserved
  5372. SeeAlso: #P175
  5373.  
  5374. Bitfields for EISA IRQ 8-15 interrupt edge/level register:
  5375. Bit(s)    Description    (Table P175)
  5376.  7    IRQ 15 is level sensitive
  5377.  6    IRQ 14 is level sensitive
  5378.  5    reserved (1)
  5379.  4    IRQ 12 is level sensitive
  5380.  3    IRQ 11 is level sensitive
  5381.  2    IRQ 10 is level sensitive
  5382.  1    IRQ 9  is level sensitive
  5383.  0    reserved
  5384. SeeAlso: #P174
  5385. ----------P04D404D6--------------------------
  5386. PORT 04D4-04D6 ---- EISA DMA control
  5387. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04D0h-04D1h"EISA"
  5388.  
  5389. 04D4  R      DMA chaining status
  5390. 04D4   W  extended DMA chaining mode register, channels 4-7 (see #P176)
  5391. 04D6   W  DMA extended mode register for channels 4-7 (see #P177)
  5392.     bit settings same as PORT 040Bh
  5393.  
  5394. Bitfields for EISA extended DMA chaining mode register (channels 4-7):
  5395. Bit(s)    Description    (Table P176)
  5396.  7-5    reserved (0)
  5397.  4    =0  generates IRQ 13
  5398.     =1  generates terminal count
  5399.  3    =0  do not start chaining
  5400.     =1  programming complete
  5401.  2    =0  disable buffer chaining mode (default)
  5402.     =1  enable buffer chaining mode
  5403.  1-0    DMA channel select
  5404. SeeAlso: #P170,#P177
  5405.  
  5406. Bitfields for EISA DMA extended mode register (channels 4-7):
  5407. Bit(s)    Description    (Table P177)
  5408.  7    =0  enable stop register
  5409.  6    =0  terminal count is an output for this channel (default)
  5410.  5-4    DMA cycle timing
  5411.     00 ISA-compatible (default)
  5412.     01 type A timing mode
  5413.     10 type B timing mode
  5414.     11 burst DMA mode
  5415.  3-2    Address mode
  5416.     00 8-bit I/O, count by bytes (default)
  5417.     01 16-bit I/O, count by words, address shifted
  5418.     10 32-bit I/O, count by bytes
  5419.     11 16-bit I/O, count by bytes
  5420.  1-0    DMA channel select
  5421. SeeAlso: #P172,#P176
  5422. ----------P04E004FF--------------------------
  5423. PORT 04E0-04FF ---- EISA DMA stop registers
  5424. SeeAlso: PORT 0481h-048Bh"EISA"
  5425.  
  5426. 04E0-04E2  RW    channel 0
  5427. 04E4-04E6  RW    channel 1
  5428. 04E8-04EA  RW    channel 2
  5429. 04EC-04EE  RW    channel 3
  5430. 04F4-04F6  RW    channel 5
  5431. 04F8-04FA  RW    channel 6
  5432. 04FC-04FE  RW    channel 7
  5433. ----------P05300533--------------------------
  5434. PORT 0530-0533 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  5435. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  5436.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  5437.  
  5438. 0530  RW  address select
  5439. 0531  RW  data
  5440. 0532  RW  status
  5441. 0533  RW  PIO
  5442. ----------P05300537--------------------------
  5443. PORT 0530-0537 - Windows Sound System (default address)
  5444. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  5445. ----------P0601------------------------------
  5446. PORT 0601 - Headland HL21, Acer M5105 chipsets - SYSTEM CONTROL
  5447.  
  5448. 0601   W  system control (see #P178)
  5449. 0601  R      status (see #P179)
  5450.  
  5451. Bitfields for Headland HL21/Acer M5105 system control register:
  5452. Bit(s)    Description    (Table P178)
  5453.  7    =1  power LED on
  5454.  6    =1  LCD backlight off
  5455.  5    ???
  5456.  4    ???
  5457.  3    ???
  5458.  2    =1  video chips disabled, screen blanked.
  5459.  1    ???
  5460.  0    =1  will lock up your machine!
  5461. SeeAlso: #P179
  5462.  
  5463. Bitfields for Headland HL21/Acer M5105 status register:
  5464. Bit(s)    Description    (Table P179)
  5465.  7    =0  if screen enabled always these values
  5466.  6    =0
  5467.  5    =0
  5468.  4    =0
  5469.  3    =0
  5470.  2    =1  (=0 at low power)
  5471.  1    =0  power OK
  5472.  0    =0
  5473. SeeAlso: #P178
  5474. ----------P06040607--------------------------
  5475. PORT 0604-0607 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  5476. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  5477.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  5478. ----------P0604060B--------------------------
  5479. PORT 0604-060B - Windows Sound System
  5480. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  5481. ----------P06200627--------------------------
  5482. PORT 0620-0627 - PC network (adapter 1)
  5483. 0628-062F - PC network (adapter 2)
  5484. ----------P06800681--------------------------
  5485. PORT 0680-0681 - Microchannel POST Diagnostic (write only)
  5486.  
  5487. 0680   W  Microchannel POST Diagnostic (write only)
  5488. 0681   W  secondary MCA POST diagnostic
  5489. ----------P06A006A8--------------------------
  5490. PORT 06A0-06A8 - non-standard COM port addresses
  5491. Note:    V20-XT by German magazine c't
  5492.  
  5493. 06A8-06AF    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  5494. ----------P06E206E3--------------------------
  5495. PORT 06E2-06E3 - data aquisition (adapter 1)
  5496. ----------P06E8------------------------------
  5497. PORT 06E8 - S3 86C928 video controller (ELSA Winner 1000)
  5498. ----------P06E806EF--------------------------
  5499. PORT 06E8-06EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5500. SeeAlso: PORT 02E8h-02EFh,PORT 0AE8h,PORT 96E8h,PORT 9AE8h
  5501.  
  5502. 06E8   W  CRT control: horizontal displayed
  5503. ----------P0746------------------------------
  5504. PORT 0746 - Gravis Ultra Sound by Advanced Gravis
  5505. SeeAlso: PORT 0240h-024Fh,PORT 0340h-034Fh
  5506.  
  5507. 0746  R      board version (rev 3.7+)
  5508.         FFh      Pre 3.6 boards, ICS mixer NOT present
  5509.         05h      Rev 3.7 with ICS Mixer. Some R/L: flip problems.
  5510.         06h-09h      Revision 3.7 and above. ICS Mixer present
  5511.         0Ah-      UltraMax. CS4231 present, no ICS mixer
  5512. 0746   W  Mixer Control Port
  5513. ----------P07900793--------------------------
  5514. PORT 0790-0793 - cluster (adapter 1)
  5515. ----------P080008FF--------------------------
  5516. PORT 0800-08FF - I/O port access registers for extended CMOS RAM or SRAM
  5517.         (256 bytes at a time)
  5518. Note:    sometimes plain text can be seen here
  5519. --------X-P080008FF--------------------------
  5520. PORT 0800-08FF - reserved for EISA system motherboard
  5521. ----------P0A200A23--------------------------
  5522. PORT 0A20-0A23 - Token Ring (adapter 1)
  5523. 0A24-0A27 - Token Ring (adapter 2)
  5524. ----------P0A79------------------------------
  5525. PORT 0A79 - Plug-and-Play - WRITE DATA PORT
  5526. Desc:    all data written to the Plug-and-Play configuration registers is
  5527.       written to this port, including the configuration byte which
  5528.       indicates the I/O port from which data is to be read when reading
  5529.       the configuration registers
  5530. SeeAlso: PORT 0279h
  5531.  
  5532. 0A79  -W  Plug-and-Play data writes
  5533. ----------P0AE20AE3--------------------------
  5534. PORT 0AE2-0AE3 - cluster (adapter 2)
  5535. ----------P0AE8------------------------------
  5536. PORT 0AE8 - S3 86C928 video controller (ELSA Winner 1000)
  5537. ----------P0AE80AEF--------------------------
  5538. PORT 0AE8-0AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5539.  
  5540. 0AE8   W  CRT control: horizontal sync start
  5541. ----------P0B900B93--------------------------
  5542. PORT 0B90-0B93 - cluster (adapter 2)
  5543. ----------P0C00------------------------------
  5544. PORT 0C00 - EISA??? - PAGE REGISTER
  5545.  
  5546. 0C00  RW  page register to write to SRAM or I/O
  5547. --------X-P0C000CFF--------------------------
  5548. PORT 0C00-0CFF - reserved for EISA system motherboard
  5549. ----------P0C7C------------------------------
  5550. PORT 0C7C        bit 7-4 (Compaq)
  5551. --------X-P0C800C83--------------------------
  5552. PORT 0C80-0C83 - EISA system board ID registers
  5553.  
  5554. 0C80  R?  bit 7: unused (0)
  5555.       bits 6-2: manufacturer ID, first compressed ASCII char
  5556.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  5557. 0C81  R?  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  5558.       bits 4-0: manufacturer ID, third compressed ASCII char
  5559. 0C82  R?  reserved for manufacturer's use
  5560. 0C83  R?  bits 7-3: reserved for manufacturer's use
  5561.       bits 2-0: EISA bus version
  5562. --------X-P0CF80CFF--------------------------
  5563. PORT 0CF8-0CFF - PCI Configuration Mechanism 1 - Configuration Registers
  5564. SeeAlso: PORT 0CF8h"Mechanism 2"
  5565.  
  5566. 0CF8d -W  configuration address port (see #P180)
  5567. 0CFCd RW  configuration data port (when PORT 0CF8h bit 31 is set)
  5568.  
  5569. Bitfields for PCI configuration address port:
  5570. Bit(s)    Description    (Table P180)
  5571.  1-0    reserved (00)
  5572.  7-2    configuration register number (see #0585)
  5573.  10-8    function
  5574.  15-11    device number
  5575.  23-16    bus number
  5576.  30-24    reserved (0)
  5577.  31    enable configuration space mapping
  5578. Note:    configuration registers are considered DWORDs, so the number in bits
  5579.       7-2 is the configuration space address shifted right two bits
  5580. SeeAlso: #P181
  5581. --------X-P0CF80CFA--------------------------
  5582. PORT 0CF8-0CFA - PCI Configuration Mechanism 2 - Configuration Registers
  5583. Notes:    this configuration mechanism is deprecated as of PCI version 2.1;
  5584.       only mechanism 1 should be used for new systems
  5585.     to access the configuration space, write the target bus number to
  5586.       the Forward Register, then write to the Configuration Space
  5587.       Enable register, and finally read or write the appropriate I/O
  5588.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  5589.       'rr' in physical device 'x's configuration data)
  5590.     the Intel "Saturn" and "Neptune" chipsets use configuration mechanism 2
  5591. SeeAlso: PORT 0CF8h"Mechanism 1",PORT C000h"PCI Configuration"
  5592.  
  5593. 0CF8  RW  Configuration Space Enable (CSE) (see #P181)
  5594. 0CFA  RW  Forward Register (selects target bus number)
  5595.  
  5596. Bitfields for PCI Configuration Space Enable:
  5597. Bit(s)    Description    (Table P181)
  5598.  0    Special Cycle Enable (SCE)
  5599.  3-1    target function number (PCI logical device within physical device)
  5600.  7-4    key (non-zero to allow configuration)
  5601. SeeAlso: #P180
  5602. ----------P0CF9------------------------------
  5603. PORT 0CF9 - Intel 82420EX chipset - TURBO/RESET CONTROL REGISTER
  5604. Notes:    this port can only be accessed via 8-bit IN or OUT instructions by
  5605.       the CPU
  5606.     also supported by the Intel "Saturn" and "Neptune" chipsets
  5607. SeeAlso: PORT C051h
  5608.  
  5609. 0CF9  RW  reboot system, optionally selecting de-turbo mode (see #P182)
  5610.  
  5611. (Table P182)
  5612. Call Intel 82420EX turbo/reset control register with:
  5613.  7-3    reserved (0)
  5614.  2    reset CPU
  5615.  1    reset mode
  5616.     0 soft reset
  5617.     1 hard reset
  5618.  0    deturbo mode
  5619. Note:    when resetting the CPU, two writes are required: the first sets the
  5620.       state of bit 1 while keeping bit 2 cleared, and the second sets
  5621.       bit 2; the reset occurs on bit 2's transition from 0 to 1.
  5622. --------s-P0E800E83--------------------------
  5623. PORT 0E80-0E83 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  5624. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  5625.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  5626. --------s-P0E800E87--------------------------
  5627. PORT 0E80-0E87 - Windows Sound System
  5628. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  5629. --------V-P0EE8------------------------------
  5630. PORT 0EE8 - S3 86C928 video controller (ELSA Winner 1000)
  5631. --------V-P0EE80EEF--------------------------
  5632. PORT 0EE8-0EEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5633.  
  5634. 0EE8   W  CRT control: horizontal sync width
  5635. ----------P0F400F43--------------------------
  5636. PORT 0F40-0F43 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  5637. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  5638.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  5639. ----------P0F400F47--------------------------
  5640. PORT 0F40-0F47 - Windows Sound System
  5641. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  5642. --------X-P100010FF--------------------------
  5643. PORT 1000-10FF - available for EISA slot 1
  5644. ----------P12E812EF--------------------------
  5645. PORT 12E8-12EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5646.  
  5647. 12E8   W  CRT control: vertical total
  5648. ----------P13901393--------------------------
  5649. PORT 1390-1393 - cluster (adapter 3)
  5650. --------X-P140014FF--------------------------
  5651. PORT 1400-14FF - available for EISA slot 1
  5652. ----------P16E816EF--------------------------
  5653. PORT 16E8-16EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5654.  
  5655. 16E8   W  CRT control: vertical displayed
  5656. --------X-P180018FF--------------------------
  5657. PORT 1800-18FF - available for EISA slot 1
  5658. ----------P1AE81AEF--------------------------
  5659. PORT 1AE8-1AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5660.  
  5661. 1AE8   W  CRT cotnrol: vertical sync start
  5662. --------X-P1C001CFF--------------------------
  5663. PORT 1C00-1CFF - available for EISA slot 1
  5664. ----------P1C65------------------------------
  5665. PORT 1C65 - Compaq Contura Aero
  5666. SeeAlso: PORT 2065h
  5667.  
  5668. 1C65  R?  bit 6: operating on battery power
  5669. --------X-P1C801C8F--------------------------
  5670. PORT 1C80-1C8F - VESA XGA Video in EISA slot 1
  5671.  
  5672. 1C80-1C83  RW    EISA Video ID
  5673. 1C84  RW    EISA Video expansion board control (see #P183)
  5674. 1C85  RW    EISA Setup control
  5675. 1C88  RW    EISA Video Programmable Option Select 0
  5676. 1C89-1C8F  RW    EISA Video Programmable Option Select 1-7
  5677. --------X-P1C801C83--------------------------
  5678. PORT 1C80-1C83 - EISA board product ID (board in slot 1)
  5679.  
  5680. 1C80  R?  bit 7: unused (0)
  5681.       bits 6-2: manufacturer ID, first compressed ASCII char
  5682.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  5683. 1C81  R?  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  5684.       bits 4-0: manufacturer ID, third compressed ASCII char
  5685. 1C82  R?  bits 7-4: first hex digit of product type
  5686.       bits 3-0: second hex digit of product type
  5687. 1C83  R?  bits 7-4: third hex digit of product type
  5688.       bits 3-0: product revision number (hex digit)
  5689. --------X-P1C84------------------------------
  5690. PORT 1C84 - EISA CONFIGURATION FLAGS (board in slot 1)
  5691.  
  5692. 1C84  RW  configuration flags (see #P183)
  5693.  
  5694. Bitfields for EISA Add-in Card configuration flags:
  5695. Bit(s)    Description    (Table P183)
  5696.  0    enable
  5697.  1    IOCHKERR (read-only) card is generating CHCHK#, causing an NMI
  5698.  2    IOCHKRST reset card
  5699.  7-3    card-specific
  5700. --------V-P1C85------------------------------
  5701. PORT 1C85 - Compaq Qvision EISA - Virtual Controller ID
  5702. --------V-P1EE81EEF--------------------------
  5703. PORT 1EE8-1EEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5704.  
  5705. 1EE8   W  CRT control: vertical sync width
  5706. --------X-P200020FF--------------------------
  5707. PORT 2000-20FF - available for EISA slot 2
  5708. ----------P2065------------------------------
  5709. PORT 2065 - Compaq Contura Aero
  5710. SeeAlso: PORT 1C65h"Compaq",PORT 2465h"Compaq"
  5711.  
  5712. 2065   W  ??? (84h seen)
  5713. --------V-P2100------------------------------
  5714. PORT 2100 - XGA Video Operating Mode Register
  5715. Note:    this port is for the first XGA in the system; 2110-2170 are used for
  5716.       the second through eighth XGAs
  5717. --------V-P2101------------------------------
  5718. PORT 2101 - XGA Video Aperture Control
  5719. Note:    this port is for the first XGA in the system; 2111-2171 are used for
  5720.       the second through eighth XGAs
  5721. --------V-P21022103--------------------------
  5722. PORT 2102-2103 - XGA ???
  5723. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5724.       the second through eighth XGAs
  5725. --------V-P2104------------------------------
  5726. PORT 2104 - XGA Video Interrupt Enable
  5727. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5728.       the second through eighth XGAs
  5729. --------V-P2105------------------------------
  5730. PORT 2105 - XGA Video Interrupt Status
  5731. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5732.       the second through eighth XGAs
  5733. --------V-P2106------------------------------
  5734. PORT 2106 - XGA Video Virtual Memory Control
  5735. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5736.       the second through eighth XGAs
  5737. --------V-P2107------------------------------
  5738. PORT 2107 - XGA Video Virtual Memory Interrupt Status
  5739. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5740.       the second through eighth XGAs
  5741. --------V-P2108------------------------------
  5742. PORT 2108 - XGA Video Aperture Index
  5743. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5744.       the second through eighth XGAs
  5745. --------V-P2109------------------------------
  5746. PORT 2109 - XGA Video Memory Access Mode
  5747. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5748.       the second through eighth XGAs
  5749. --------V-P210A------------------------------
  5750. PORT 210A - XGA Video Index for Data
  5751. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5752.       the second through eighth XGAs
  5753. --------V-P210B------------------------------
  5754. PORT 210B - XGA Video Data (byte)
  5755. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5756.       the second through eighth XGAs
  5757. --------V-P210C210F--------------------------
  5758. PORT 210C-210F - XGA Video Data (word/dword)
  5759. Note:    this port is for the first XGA in the system; 211x-217x are used for
  5760.       the second through eighth XGAs
  5761.  
  5762. 210C  RW  byte data
  5763. 210Cw RW  word data
  5764. 210Cd RW  dword data
  5765. --------V-P2110211F--------------------------
  5766. PORT 2110-211F - IBM XGA (eXtended Graphics Adapter  8514/A) (second installed)
  5767. Notes:    see individual 210x entries above
  5768.     c't says default instance number is 6, i.e. addresses 216x
  5769. --------V-P2120212F--------------------------
  5770. PORT 2120-212F - IBM XGA (eXtended Graphics Adapter  8514/A) (third installed)
  5771. Notes:    see individual 210x entries above
  5772.     c't says default instance number is 6, i.e. addresses 216x
  5773. --------V-P2130213F--------------------------
  5774. PORT 2130-213F - IBM XGA (eXtended Graphics Adapter  8514/A) (fourth installed)
  5775. Notes:    see individual 210x entries above
  5776.     c't says default instance number is 6, i.e. addresses 216x
  5777. --------V-P2140214F--------------------------
  5778. PORT 2140-214F - IBM XGA (eXtended Graphics Adapter  8514/A) (fifth installed)
  5779. Notes:    see individual 210x entries above
  5780.     c't says default instance number is 6, i.e. addresses 216x
  5781. --------V-P2150215F--------------------------
  5782. PORT 2150-215F - IBM XGA (eXtended Graphics Adapter  8514/A) (sixth installed)
  5783. Notes:    see individual 210x entries above
  5784.     c't says default instance number is 6, i.e. addresses 216x
  5785. --------V-P2160216F--------------------------
  5786. PORT 2160-216F - IBM XGA (eXtended Graphics Adapter 8514/A) (seventh installed)
  5787. Notes:    see individual 210x entries above
  5788.     c't says default instance number is 6, i.e. addresses 216x
  5789. --------V-P2170217F--------------------------
  5790. PORT 2170-217F - IBM XGA (eXtended Graphics Adapter 8514/A) (eighth installed)
  5791. Notes:    see individual 210x entries above
  5792.     c't says default instance number is 6, i.e. addresses 216x
  5793. --------V-P217A217B--------------------------
  5794. PORT 217A-217B ---- ET4000/W32 CRTC-B/Sprite
  5795. Note:    Alternative addresses may depend on adapter manufacturer,
  5796.       Tseng claims 21xA with x=three address bits, selected by IOD2..0
  5797.       during power up reset.
  5798.  
  5799. 21xA  RW  ET4000/W32(i) CRTC-B/Sprite index register
  5800.     bit7-0: index
  5801. 21xB  RW  ET4000/W32(i) CRTC-B/Sprite data register (see #P184)
  5802.  
  5803. (Table P184)
  5804. Values for ET4000/W32(i) CRTC-B/Sprite data register index:
  5805.  E0h    CRTC-B / Sprite Horizontal Pixel Position, Low
  5806.        bit7-0: horizontal pixel position bit7-0
  5807.  E1h    CRTC-B / Sprite Horizontal Pixel Position, High
  5808.        bit7-4: reserved
  5809.        bit3-0: horizontal pixel position bit11-8
  5810.  E2h    CRTC-B Width Low / Sprite Horizontal Preset
  5811.        bit7-0: width of CRTC-B bit7-0
  5812.        bit5-0: horizontal preset for sprite
  5813.  E3h    CRTC-B Width High / Sprite Horizontal Preset
  5814.        bit7-4: reserved
  5815.        bit3-0: width of CRTC-B bit11-8
  5816.  E4h    CRTC-B / Sprite Vertical Pixel Position, Low
  5817.        bit7-0: vertical pixel position bit7-0
  5818.  E5h    CRTC-B / Sprite Vertical Pixel Position, High
  5819.        bit7-4: reserved
  5820.        bit3-0: vertical pixel position bit11-8
  5821.  E6h    CRTC-B Height Low / Sprite Vertical Preset
  5822.        bit7-0: height of CRTC-B bit7-0
  5823.        bit5-0: vertical preset for sprite
  5824.  E7h    CRTC-B Height High / Sprite Vertical Preset
  5825.        bit7-4: reserved
  5826.        bit3-0: height of CRTC-B bit11-8
  5827.  E8h    CRTC-B / Sprite Starting Address Low
  5828.        pointer to CRTC-B / sprite image in display memory.
  5829.        (maximum size of sprites 64x64x4=1KB with 4 colors:
  5830.         00b=color-0, 01b=color-255, 10b=transparent, 11b=reserved)
  5831.        bit7-0: startaddress bit7-0
  5832.  E9h    CRTC-B / Sprite Starting Address Middle
  5833.        bit7-0: startaddress bit15-8
  5834.  EAh    CRTC-B / Sprite Starting Address High
  5835.        bit7-4: reserved
  5836.        bit3-0: startaddress bit19-16
  5837.  EBh    CRTC-B / Sprite Row Offset Low
  5838.        bit7-0: offset bit7-0
  5839.  ECh    CRTC-B / Sprite Row Offset High
  5840.        bit7-4: revision ID (any ET4000/W32)
  5841.             0000b=W32         0100b-1111b reserved
  5842.             0001b=W32i
  5843.             0010b=W32p
  5844.             0011b=W32i, new
  5845.        bit3-0: offset bit11-8
  5846.  EDh    CRTC-B Pixel Panning
  5847.        bit7-3: reserved
  5848.        bit2-0: CRTC-B pixel panning
  5849.  EEh    CRTC-B Color-Depth-Register / Hardware-Zoom
  5850.        bit7-4: reserved (concerning databook ET4000/W32)
  5851.        bit7-6: vertical zoom (undocumented)
  5852.            (original ET4000/W32 ok, doesn't work properly
  5853.             with some ET4000/W32i)
  5854.             00b=zoomx1       10b=zoomx3
  5855.             01b=zoomx2       11b=zoomx4
  5856.        bit5-4: horizontal zoom (undocumented)
  5857.            (original ET4000/W32 ok, doesn't work properly
  5858.             with some ET4000/W32i)
  5859.             00b=zoomx1       10b=zoomx3
  5860.             01b=zoomx2       11b=zoomx4
  5861.        bit3-0: bit/pixel
  5862.             0000b=1       0011b=8
  5863.             0001b=2       0100b=16
  5864.             0010b=4
  5865.  EFh    CRTC-B / Sprite Control
  5866.        bit7-2: reserved
  5867.        bit1     : 1=2nd CRTC-B image overlays main CRTC-A image
  5868.            0=CRTC-B image at pin SP1/0
  5869.        bit0     : 1=enable CRTC-B
  5870.            0=enable sprite (see F7h)
  5871.  F7h    Image Port Control
  5872.        bit7     : 1=CRTC-B or sprite active
  5873.            0=CRTC-B and sprite not active
  5874.        bit6-0: reserved
  5875. ----------P22E822EF--------------------------
  5876. PORT 22E8-22EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5877.  
  5878. 22E8   W  CRT control: display control
  5879. ----------P23902393--------------------------
  5880. PORT 2390-2393 - cluster (adapter 4)
  5881. --------V-P23C023CF--------------------------
  5882. PORT 23C0-23CF - Compaq QVision - BitBLT engine
  5883. --------X-P240024FF--------------------------
  5884. PORT 2400-24FF - available for EISA slot 2
  5885. ----------P2465------------------------------
  5886. PORT 2465 - Compaq Contura Aero
  5887. SeeAlso: PORT 1C65h"Compaq",PORT 2065h"Compaq"
  5888.  
  5889. 2465  R      current battery power level
  5890.         (166 fully-charged, 130 = LowBat1)
  5891. ----------P27C6------------------------------
  5892. PORT 27C6 - Compaq LTE Lite - LCD TIMEOUT
  5893.  
  5894. 27C6  RW  LCD timeout in minutes
  5895. --------X-P280028FF--------------------------
  5896. PORT 2800-28FF - available for EISA slot 2
  5897. --------V-P28E9------------------------------
  5898. PORT 28E9 - 8514/A - WD Escape Functions
  5899. --------V-P2C802C8F--------------------------
  5900. PORT 2C80-2C8F - VESA XGA Video in EISA slot 2
  5901. SeeAlso: PORT 1C80h-1C83h
  5902. --------X-P2C802C83--------------------------
  5903. PORT 2C80-2C83 - EISA board product ID (board in slot 2)
  5904. SeeAlso: PORT 1C80h-1C83h
  5905. --------X-P2C84------------------------------
  5906. PORT 2C84 - EISA CONFIGURATION FLAGS (board in slot 2)
  5907.  
  5908. 2C84  RW  configuration flags (see #P183)
  5909. --------X-P300030FF--------------------------
  5910. PORT 3000-30FF - available for EISA slot 3
  5911. --------S-P32203227--------------------------
  5912. PORT 3220-3227 - serial port 3, description same as 03F8
  5913. --------S-P3228322F--------------------------
  5914. PORT 3228-322F - serial port 4, description same as 03F8
  5915. --------V-P33C033CF--------------------------
  5916. PORT 33C0-33CF - Compaq QVision - BitBLT engine
  5917. --------X-P340034FF--------------------------
  5918. PORT 3400-34FF - available for EISA slot 3
  5919. --------d-P35103513--------------------------
  5920. PORT 3510-3513 - ESDI primary harddisk controller
  5921.  
  5922. 3510  R      status word
  5923. 3510   W  command word
  5924. 3512  R      basic status
  5925. 3512   W  basic control
  5926. 3513  R      interrupt status
  5927. 3513   W  attention
  5928. --------d-P3518351B--------------------------
  5929. PORT 3518-351B - ESDI secondary harddisk controller
  5930.  
  5931. 3518  R      status word
  5932. 3518   W  command word
  5933. 351A  R      basis status
  5934. 351A   W  basic control
  5935. 351B  R      interrupt status
  5936. 351B   W  attention
  5937. --------d-P3540354F--------------------------
  5938. PORT 3540-354F - IBM SCSI (Small Computer System Interface) adapter
  5939. --------d-P3550355F--------------------------
  5940. PORT 3550-355F - IBM SCSI (Small Computer System Interface) adapter
  5941. --------d-P3560356F--------------------------
  5942. PORT 3560-356F - IBM SCSI (Small Computer System Interface) adapter
  5943. --------d-P3570357F--------------------------
  5944. PORT 3570-357F - IBM SCSI (Small Computer System Interface) adapter
  5945. --------X-P380038FF--------------------------
  5946. PORT 3800-38FF - available for EISA slot 3
  5947. --------X-P3C003CFF--------------------------
  5948. PORT 3C00-3CFF - available for EISA slot 3
  5949. --------V-P3C803C8F--------------------------
  5950. PORT 3C80-3C8F - VESA XGA Video in EISA slot 3
  5951.  
  5952. 3C80-3C83  RW    EISA Video ID
  5953. 3C84  RW    EISA Video expansion board control    
  5954. 3C85  RW    EISA Setup control
  5955. 3C88  RW    EISA Video Programmable Option Select 0
  5956. 3C89-3C8F  RW    EISA Video Programmable Option Select 1-7
  5957.  
  5958. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 7C80h-7C8Fh"XGA"
  5959. --------X-P3C803C83--------------------------
  5960. PORT 3C80-3C83 - EISA board product ID (board in slot 3)
  5961. SeeAlso: PORT 1C80h-1C83h
  5962. --------X-P3C84------------------------------
  5963. PORT 3C84 - EISA CONFIGURATION FLAGS (board in slot 3)
  5964.  
  5965. 3C84  RW  configuration flags (see #P183)
  5966. --------X-P400040FF--------------------------
  5967. PORT 4000-40FF - available for EISA slot 4
  5968. ----------P42204227--------------------------
  5969. PORT 4220-4227 - serial port, description same as 03F8
  5970. ----------P4228422F--------------------------
  5971. PORT 4228-422F - serial port, description same as 03F8
  5972. ----------P42E042EF--------------------------
  5973. PORT 42E0-42EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  5974.  
  5975. 42E1  RW  GPIB (adapter 2)
  5976. --------V-P42E8------------------------------
  5977. PORT 42E8 - 8514/A and hardware-compatible video cards
  5978.  
  5979. 42E8  R      Misc. control: Subsystem Status
  5980. 42E8   W  Misc. control: Subsystem Control
  5981. --------X-P440044FF--------------------------
  5982. PORT 4400-44FF - available for EISA slot 4
  5983. --------V-P46E8------------------------------
  5984. PORT 46E8 - VGA video adapter enable
  5985. Note:    IBM uses this port for adapter-card VGAs only, and port 03C3 for
  5986.       motherboard VGA only (see 03C3 for details)
  5987. SeeAlso: PORT 03C3h
  5988.  
  5989. 46E8  rW  Misc. control: enable flags / select ROM page (8514/A) (see #P185)
  5990.  
  5991. Bitfields for VGA miscellaneous control register:
  5992. Bit(s)    Description    (Table P185)
  5993.  7-5    unused or vendor-specific
  5994.  4    setup for POS registers (MCA)
  5995.  3    enable video I/O ports and video buffer
  5996.  2-0    unused or vendor-specific
  5997. --------V-P46E8------------------------------
  5998. PORT 46E8 - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5999.  
  6000. 46E8   W  ROM page select
  6001. --------X-P480048FF--------------------------
  6002. PORT 4800-48FF - available for EISA slot 4
  6003. --------V-P4AE84AEF--------------------------
  6004. PORT 4AE8-4AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6005.  
  6006. 4AE8   W  CRT control: Advanced function control
  6007.     (02h = VGA mode, 03h = 480-line mode, 07h = 768-line mode)
  6008. --------X-P4C004CFF--------------------------
  6009. PORT 4C00-4CFF - available for EISA slot 4
  6010. --------X-P4C804C83--------------------------
  6011. PORT 4C80-4C83    EISA board product ID (board in slot 4)
  6012. SeeAlso: PORT 1C80h-1C83h
  6013. --------V-P4C804C8F--------------------------
  6014. PORT 4C80-4C8F - VESA XGA Video in EISA slot 4 (see 3C80-3C8F)
  6015. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  6016. --------X-P4C84------------------------------
  6017. PORT 4C84 - EISA CONFIGURATION FLAGS (board in slot 4)
  6018.  
  6019. 4C84  RW  configuration flags (see #P183)
  6020. --------X-P500050FF--------------------------
  6021. PORT 5000-50FF - available for EISA slot 5
  6022. --------S-P52205227--------------------------
  6023. PORT 5220-5227 - serial port, description same as 03F8
  6024. --------S-P5228522F--------------------------
  6025. PORT 5228-522F - serial port, description same as 03F8
  6026. --------X-P540054FF--------------------------
  6027. PORT 5400-54FF - available for EISA slot 5
  6028. --------X-P580058FF--------------------------
  6029. PORT 5800-58FF - available for EISA slot 5
  6030. --------X-P5C005CFF--------------------------
  6031. PORT 5C00-5CFF - available for EISA slot 5
  6032. --------V-P5C805C8F--------------------------
  6033. PORT 5C80-5C8F - VESA XGA Video in EISA slot 5
  6034. SeeAlso: PORT 2C80h-2C8Fh,PORT 4C80h-4C8Fh,PORT 6C80h-6C8Fh
  6035.  
  6036. 5C80d RW  EISA Video ID
  6037. 5C84  RW  EISA Video expansion board control    
  6038. 5C85  RW  EISA Setup control
  6039. 5C88  RW  EISA Video Programmable Option Select 0
  6040. 5C89  RW  EISA Video Programmable Option Select 1
  6041. 5C8A  RW  EISA Video Programmable Option Select 2
  6042. 5C8B  RW  EISA Video Programmable Option Select 3
  6043. 5C8C  RW  EISA Video Programmable Option Select 4
  6044. 5C8D  RW  EISA Video Programmable Option Select 5
  6045. 5C8E  RW  EISA Video Programmable Option Select 6
  6046. 5C8F  RW  EISA Video Programmable Option Select 7
  6047. --------X-P5C805C83--------------------------
  6048. PORT 5C80-5C83    EISA board product ID (board in slot 5)
  6049. SeeAlso: PORT 1C80h-1C83h
  6050. --------X-P5C84------------------------------
  6051. PORT 5C84 - EISA CONFIGURATION FLAGS (board in slot 5)
  6052.  
  6053. 5C84  RW  configuration flags (see #P183)
  6054. --------X-P600060FF--------------------------
  6055. PORT 6000-60FF - available for EISA slot 6
  6056. ----------P62E062EF--------------------------
  6057. PORT 62E0-62EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6058.  
  6059. 62E1  RW  GPIB (adapter 3)
  6060. --------V-P63C063CF--------------------------
  6061. PORT 63C0-63CF - Compaq QVision - BitBLT engine
  6062. --------X-P640064FF--------------------------
  6063. PORT 6400-64FF - available for EISA slot 6
  6064. --------X-P680068FF--------------------------
  6065. PORT 6800-68FF - available for EISA slot 6
  6066. --------X-P6C006CFF--------------------------
  6067. PORT 6C00-6CFF - available for EISA slot 6
  6068. --------X-P6C806C83--------------------------
  6069. PORT 6C80-6C83 - EISA board product ID (board in slot 6)
  6070. SeeAlso: PORT 1C80h-1C83h
  6071. --------V-P6C806C8F--------------------------
  6072. PORT 6C80-6C8F - VESA XGA Video in EISA slot 1
  6073. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 5C80h-5C8Fh"XGA"
  6074.  
  6075. 6C80d RW  EISA Video ID (see PORT 1C80h-1C83h)
  6076. 6C84  RW  EISA Video expansion board control    
  6077. 6C85  RW  EISA Setup control
  6078. 6C88  RW  EISA Video Programmable Option Select 0
  6079. 6C89  RW  EISA Video Programmable Option Select 1
  6080. 6C8A  RW  EISA Video Programmable Option Select 2
  6081. 6C8B  RW  EISA Video Programmable Option Select 3
  6082. 6C8C  RW  EISA Video Programmable Option Select 4
  6083. 6C8D  RW  EISA Video Programmable Option Select 5
  6084. 6C8E  RW  EISA Video Programmable Option Select 6
  6085. 6C8F  RW  EISA Video Programmable Option Select 7
  6086. --------X-P6C84------------------------------
  6087. PORT 6C84 - EISA CONFIGURATION FLAGS (board in slot 6)
  6088.  
  6089. 6C84  RW  configuration flags (see #P183)
  6090. --------X-P700070FF--------------------------
  6091. PORT 7000-70FF - available for EISA slot 7
  6092. --------X-P740074FF--------------------------
  6093. PORT 7400-74FF - available for EISA slot 7
  6094. --------X-P780078FF--------------------------
  6095. PORT 7800-78FF - available for EISA slot 7
  6096. --------X-P7C007CFF--------------------------
  6097. PORT 7C00-7CFF - available for EISA slot 7
  6098. --------X-P7C807C83--------------------------
  6099. PORT 7C80-7C83 - EISA board product ID (board in slot 7)
  6100. SeeAlso: PORT 1C80h-1C83h
  6101. --------V-P7C807C8F--------------------------
  6102. PORT 7C80-7C8F - VESA XGA Video in EISA slot 7
  6103. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  6104.  
  6105. 7C80-7C83  RW    EISA Video ID
  6106. 7C84  RW    EISA Video expansion board control    
  6107. 7C85  RW    EISA Setup control
  6108. 7C88  RW    EISA Video Programmable Option Select 0
  6109. 7C89-7C8F  RW    EISA Video Programmable Option Select 1-7
  6110. --------X-P7C84------------------------------
  6111. PORT 7C84 - EISA CONFIGURATION FLAGS (board in slot 7)
  6112.  
  6113. 7C84  RW  configuration flags (see #P183)
  6114. --------X-P800080FF--------------------------
  6115. PORT 8000-80FF - available for EISA slot 8
  6116. ----------P82E082EF--------------------------
  6117. PORT 82E0-82EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6118.  
  6119. 82E1  RW  GPIB (adapter 4)
  6120. --------V-P82E882EF--------------------------
  6121. PORT 82E8-82EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6122.  
  6123. 82E8   W  drawing control: current Y position
  6124. --------S-P82F882FF--------------------------
  6125. PORT 82F8-82FF - serial port, description same as 03F8
  6126. --------V-P83C083CF--------------------------
  6127. PORT 83C0-83CF - Compaq QVision - Line Draw Engine
  6128. --------V-P83C4------------------------------
  6129. PORT 83C4 - Compaq Qvision EISA - Virtual Controller Select
  6130. --------V-P83C683C9--------------------------
  6131. PORT 83C6-83C9 - Compaq Qvision EISA - DAC color registers
  6132. --------S-P83F883FF--------------------------
  6133. PORT 83F8-83FF - serial port, description same as 03F8
  6134. --------X-P840084FF--------------------------
  6135. PORT 8400-84FF - available for EISA slot 8
  6136. --------V-P86E886EF--------------------------
  6137. PORT 86E8-86EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6138.  
  6139. 86E8   W  drawing control: current X position
  6140. --------X-P880088FF--------------------------
  6141. PORT 8800-88FF - available for EISA slot 8
  6142. --------V-P8AE88AEF--------------------------
  6143. PORT 8AE8-8AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6144.  
  6145. 8AE8   W  drawing control: destination Y position / axial step constant
  6146. --------X-P8C008CFF--------------------------
  6147. PORT 8C00-8CFF - available for EISA slot 8
  6148. --------X-P8C808C83--------------------------
  6149. PORT 8C80-8C83 - EISA board product ID (board in slot 8)
  6150. SeeAlso: PORT 1C80h-1C83h
  6151. --------X-P8C84------------------------------
  6152. PORT 8C84 - EISA CONFIGURATION FLAGS (board in slot 8)
  6153.  
  6154. 8C84  RW  configuration flags (see #P183)
  6155. --------V-P8EE88EEF--------------------------
  6156. PORT 8EE8-8EEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6157.  
  6158. 8EE8   W  drawing control: destination X position / axial step constant
  6159. --------X-P900090FF--------------------------
  6160. PORT 9000-90FF - available for EISA slot 9
  6161. --------V-P92E892EF--------------------------
  6162. PORT 92E8-92EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6163.  
  6164. 92E8   W  drawing control: error term
  6165. --------X-P940094FF--------------------------
  6166. PORT 9400-94FF - available for EISA slot 9
  6167. --------V-P96E896EF--------------------------
  6168. PORT 96E8-96EF - 8514/A and hardware-compatible video cards
  6169.  
  6170. 96E8  R      enter WD Enhanced Mode
  6171. 96E8   W  drawing control: major axis pixel count
  6172. --------X-P980098FF--------------------------
  6173. PORT 9800-98FF - available for EISA slot 9
  6174. --------V-P9AE89AE9--------------------------
  6175. PORT 9AE8-9AE9 - 8514/A Graphics Processor Status
  6176.  
  6177. 9AE8w R      drawing control: graphic processor status (see #P186)
  6178. 9AE8w  W  drawing control: command register (see #P187)
  6179.  
  6180. Bitfields for 8514/A graphic processor status:
  6181. Bit(s)    Description    (Table P186)
  6182.  15-10    reserved
  6183.  9    hardware busy
  6184.  8    data ready
  6185.  7-0    status of queue (0=empty, 1=filled)
  6186.     (each bit represents a position in queue)
  6187. SeeAlso: #P187
  6188.  
  6189. Bitfields for 8514/A command register :
  6190. Bit(s)    Description    (Table P187)
  6191.  15-13    command
  6192.     000 = no operation
  6193.     001 = draw vector
  6194.     010 = fast rectangle fill
  6195.     011 = rectangle fill vertical #1
  6196.     100 = rectangle fill vertical #2 (4 pixels)
  6197.     101 = draw vector, 1 pixel/scanline
  6198.     110 = copy rectangle
  6199.     111 = reserved
  6200.  12    byte sequence (0=high byte first, 1=low byte first)
  6201.  11-10    reserved
  6202.  9    enable 16-bit write access (16BIT)
  6203.  8    0=use 8514/A data, 1=pixel data trans reg (PCDATA)
  6204.  7    0=draw vector above, 1=draw vector below (INC_Y)
  6205.  6    0=x is maj. axis, 1=y is maj. axis (YMAJAXIS)
  6206.  5    0=draw vector left, 1=draw vector right (INC_X)
  6207.  4    0=move only, 1=draw and move (DRAW)
  6208.  3    0=Bresenham line, 1=direct vector (LINETYPE)
  6209.  2    0=draw last pixel, 1=don't draw last pixel (LASTPIX)
  6210.  1    0=single pixel, 1=4pixel (PLANAR)
  6211.  0    0=read data, 1=write data (RD/WR)
  6212. SeeAlso: #P186
  6213. --------X-P9C009CFF--------------------------
  6214. PORT 9C00-9CFF - available for EISA slot 9
  6215. --------X-P9C809C83--------------------------
  6216. PORT 9C80-9C83 - EISA board product ID (board in slot 9)
  6217. SeeAlso: PORT 1C80h-1C83h
  6218. --------X-P9C84------------------------------
  6219. PORT 9C84 - EISA CONFIGURATION FLAGS (board in slot 9)
  6220.  
  6221. 9C84  RW  configuration flags (see #P183)
  6222. --------V-P9EE8------------------------------
  6223. PORT 9EE8 - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6224.  
  6225. 9EE8   W  short line vector transfer
  6226. --------S-PA220------------------------------
  6227. PORT A220 - soundblaster support in AMI Hi-Flex BIOS  ????
  6228. ----------PA2E0A2EF--------------------------
  6229. PORT A2E0-A2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6230.  
  6231. A2E1  RW  GPIB (adapter 5)
  6232. --------V-PA2E8A2EF--------------------------
  6233. PORT A2E8-A2EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6234.  
  6235. A2E8   W  drawing control: background color
  6236. --------V-PA6E8A6EF--------------------------
  6237. PORT A6E8-A6EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6238.  
  6239. A6E8   W  drawing control: foreground color
  6240. --------V-PAAE8AAEF--------------------------
  6241. PORT AAE8-AAEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6242.  
  6243. AAE8   W  drawing control: write mask
  6244. --------V-PAEE8AEEF--------------------------
  6245. PORT AEE8-AEEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6246.  
  6247. AEE8   W  drawing control: read mask
  6248. --------V-PAFFF------------------------------
  6249. PORT AFFF - VIDEO REGISTER
  6250.  
  6251. AFFF  RW  plane 0-3 system latch (video register)
  6252. --------S-PB220B227--------------------------
  6253. PORT B220-B227 - serial port, description same as 03F8
  6254. --------S-PB228B22F--------------------------
  6255. PORT B228-B22F - serial port, description same as 03F8
  6256. --------V-PB2E8B2EF--------------------------
  6257. PORT B2E8-B2EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6258.  
  6259. B2E8   W  drawing control: color compare
  6260. --------V-PB6E8B6EF--------------------------
  6261. PORT B6E8-B6EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6262.  
  6263. B6E8   W  drawing control: background mix
  6264. --------V-PBAE8BAEF--------------------------
  6265. PORT BAE8-BAEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6266.  
  6267. BAE8   W  drawing control: foreground mix
  6268. --------V-PBEE8BEEF--------------------------
  6269. PORT BEE8-BEEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6270.  
  6271. BEE8   W  drawing control: multi-function control
  6272. ----------PC000C004--------------------------
  6273. PORT C000-C004 - Intel Pentium mboard ("Neptune" chipset)
  6274. SeeAlso: PORT C050h,PORT C200h-C204h,INT 15/AX=DA8Ch,#0585 at INT 1A/AX=B10Ah
  6275. --------X-PC000CFFF--------------------------
  6276. PORT C000-CFFF - PCI Configuration Mechanism 2 - CONFIGURATION SPACE
  6277. Note:    to access the configuration space, write the target bus number to
  6278.       PORT 0CFAh, then write to the Configuration Space Enable register
  6279.       (PORT 03F8h), and finally read or write the appropriate I/O
  6280.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  6281.       'rr' in physical device 'x's configuration data)
  6282. SeeAlso: PORT 0CF8h"Mechanism 2",PORT 0CFAh"Mechanism 2"
  6283. SeeAlso: #0585 at INT 1A/AX=B10Ah
  6284. --------X-PC008------------------------------
  6285. PORT C008 - Intel Pentium mboard ("Neptune" chipset) - CHIPSET REVISION
  6286. Desc:    the host/PCI bridge revision ID register is visible on this port when
  6287.       the PCI configuration space has been opened via ports 0CF8h and 0CFAh
  6288. SeeAlso: PORT 0CF8h,PORT 0CFAh,PORT C000h-C004h,PORT C050h,PORT C065h
  6289. --------X-PC050------------------------------
  6290. PORT C050 - Intel Pentium mboard ("Neptune" chipset)
  6291. SeeAlso: PORT C052h
  6292.  
  6293. C050  RW  ???
  6294.       bit 0: ???
  6295.       bit 1: ???
  6296.       bit 2: enable secondary (L2) cache
  6297. --------X-PC051------------------------------
  6298. PORT C051 - Intel Pentium mboard ("Neptune" chipset) - DETURBO SPEED CONTROL
  6299. SeeAlso: PORT 0CF9h
  6300.  
  6301. C051  RW  slowdown factor when in de-turbo mode
  6302. --------X-PC052------------------------------
  6303. PORT C052 - Intel Pentium mboard ("Neptune" chipset)
  6304. SeeAlso: PORT 0CF8h,PORT 0CFAh,PORT C050h,PORT C059h,PORT C065h
  6305.  
  6306. C052  RW  bit 0: ???
  6307.       bit 1: ???
  6308.       bits 6,7: ???
  6309. --------X-PC054------------------------------
  6310. PORT C054 - Intel Pentium mboard ("Neptune" chipset)
  6311. SeeAlso: PORT 0CF8h,PORT 0CFAh
  6312.  
  6313. C054  RW  bit 2: ??? (set immediately upon booting)
  6314. --------X-PC059------------------------------
  6315. PORT C059 - Intel Pentium mboard ("Neptune" chipset)
  6316. --------X-PC065------------------------------
  6317. PORT C065 - Intel "Neptune" chipset - MEMORY SIZE???
  6318. SeeAlso: INT 15/AX=DA88h
  6319.  
  6320. C065  R      system memory in MB??? (10h on a 16MB machine)
  6321. --------d-PC100C1FF--------------------------
  6322. PORT C100-C1FF - Intel Pentium mboard - PCTech RZ1000 EIDE controller
  6323. Desc:    the PCI configuration registers for the EIDE controller are visible
  6324.       on these ports when the PCI configuration space has been opened via
  6325.       ports 0CF8h and 0CFAh
  6326. SeeAlso: PORT 03F0h"RZ1000",PORT 0CF8h,#0585 at INT 1A/AX=B10Ah
  6327. ----------PC200C204--------------------------
  6328. PORT C200-C204 - Intel Pentium mboard ("Neptune" chipset)
  6329. Desc:    the PCI configuration registers for the motherboard chipset are visible
  6330.       on these ports when the PCI configuration space has been opened via
  6331.       ports 0CF8h and 0CFAh
  6332. SeeAlso: #0585 at INT 1A/AX=B10Ah
  6333. --------S-PC220C227--------------------------
  6334. PORT C220-C227 - serial port, description same as 03F8
  6335. --------S-PC228C22F--------------------------
  6336. PORT C228-C22F - serial port, description same as 03F8
  6337. ----------PC244------------------------------
  6338. PORT C244 - Intel Pentium mboard ("Neptune" chipset)
  6339. ----------PC2E0C2EF--------------------------
  6340. PORT C2E0-C2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6341.  
  6342. C2E1  RW  GPIB (adapter 6)
  6343. --------S-PD220D227--------------------------
  6344. PORT D220-D227 - serial port, description same as 03F8
  6345. --------S-PD228D22F--------------------------
  6346. PORT D228-D22F - serial port, description same as 03F8
  6347. ----------PE2E0E2EF--------------------------
  6348. PORT E2E0-E2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6349.  
  6350. E2E1  RW  GPIB (adapter 7)
  6351. --------V-PE2E8E2EF--------------------------
  6352. PORT E2E8-E2EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6353.  
  6354. E2E8   W  drawing control: pixel data transfer
  6355. --------!----CREDITS-------------------------
  6356. Chuck Proctor        <71534.2302@CompuServe.COM>
  6357. Richard W. Watson    <73042.1420@CompuServe.COM>
  6358. Matthias Paul        <mpaul@ibh.rwth-aachen.de>
  6359.  
  6360. [Some of the information in this list was extracted from Frank van Gilluwe's
  6361. _The_Undocumented_PC_, a must-have book for anyone programming down to the
  6362. "bare metal" of a PC.]
  6363.  
  6364. [Some of the information in this list from the shareware version of Dave
  6365. Williams' DOSREF, v3.0]
  6366.  
  6367. [8514/A hardware ports found in FractInt v18.0 source file FR8514A.ASM]
  6368.  
  6369. [Compaq QVision info from the _COMPAQ_QVision_Graphics_System_Technical_
  6370. _Reference_Guide_, second edition (October 1993).  Compaq part number
  6371. 073A/0693.  Much more to come!]
  6372.  
  6373. [AMI keyboard controller port 0064 commands from the American Megatrends, Inc.
  6374. _Version_KF_and_KH_Keyboard_Controller_BIOS_Reference_, available on the
  6375. AMI BBS and american.megatrends.com as KFKHMAN.ZIP.]
  6376.  
  6377. [Various chipset infos from "Het BIOS Boekje" 2nd edition, by Alle Metzlar,
  6378. ISBN 90-72260-59-7 (1995).]
  6379.  
  6380. [ATA-3 info from "AT Attachment-3 Interface (ATA-3) Revision 1", dated
  6381. April 21, 1995.]
  6382.  
  6383. [Some additional EISA info from _EISA_System_Architecture_ (second edition),
  6384. by MindShare, Inc. (Addison-Wesley 1995, ISBN 0-201-40995-X).]
  6385.  
  6386. [AMI BIOS diagnostics codes (port 0080h) from file CHECKPTS on AMI BBS.]
  6387. --------!---Admin----------------------------
  6388. Highest Table Number = P206
  6389. --------!---FILELIST-------------------------
  6390. Please redistribute all of the files comprising the interrupt list (listed at
  6391. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  6392. quartet of archives named INTER49A through INTER49D (preferably the original
  6393. authenticated PKZIP archives), and the utility programs in a two additional
  6394. archives called INTER49E.ZIP and INTER49F.ZIP
  6395.  
  6396. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  6397. --------!---CONTACT_INFO---------------------
  6398. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  6399. UUCP: {uunet,harvard}!pobox.com!ralf
  6400. FIDO: Ralf Brown 1:129/26.1
  6401.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  6402.     unless you address it to me)
  6403. CIS:  >INTERNET:ralf@pobox.com
  6404.  
  6405.  
  6406. !!!
  6407. ------------------------------------------------------------------------------
  6408. 22Ch, 26Ch, 2ACh, <2ECh>, 32Ch, 36Ch, 3ACh, 3ECh
  6409.                  default
  6410. GS-IF Scanner Interface adapter
  6411.   (many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  6412.    others)
  6413.